aboutsummaryrefslogtreecommitdiff
path: root/javascript/edit-attention.js
diff options
context:
space:
mode:
authorAUTOMATIC <16777216c@gmail.com>2022-10-06 23:44:54 +0300
committerAUTOMATIC <16777216c@gmail.com>2022-10-06 23:44:54 +0300
commit2995107fa24cfd72b0a991e18271dcde148c2807 (patch)
treec07b45d3d227d19c682ec6a62f3e7c8cfda3f408 /javascript/edit-attention.js
parentb34b25b4c941819d34f29be6c4c1ec01e64585b4 (diff)
added ctrl+up or ctrl+down hotkeys for attention
Diffstat (limited to 'javascript/edit-attention.js')
-rw-r--r--javascript/edit-attention.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/javascript/edit-attention.js b/javascript/edit-attention.js
new file mode 100644
index 00000000..c67ed579
--- /dev/null
+++ b/javascript/edit-attention.js
@@ -0,0 +1,41 @@
+addEventListener('keydown', (event) => {
+ let target = event.originalTarget;
+ if (!target.hasAttribute("placeholder")) return;
+ if (!target.placeholder.toLowerCase().includes("prompt")) return;
+
+ let plus = "ArrowUp"
+ let minus = "ArrowDown"
+ if (event.key != plus && event.key != minus) return;
+
+ selectionStart = target.selectionStart;
+ selectionEnd = target.selectionEnd;
+ if(selectionStart == selectionEnd) return;
+
+ event.preventDefault();
+
+ if (selectionStart == 0 || target.value[selectionStart - 1] != "(") {
+ target.value = target.value.slice(0, selectionStart) +
+ "(" + target.value.slice(selectionStart, selectionEnd) + ":1.0)" +
+ target.value.slice(selectionEnd);
+
+ target.focus();
+ target.selectionStart = selectionStart + 1;
+ target.selectionEnd = selectionEnd + 1;
+
+ } else {
+ end = target.value.slice(selectionEnd + 1).indexOf(")") + 1;
+ weight = parseFloat(target.value.slice(selectionEnd + 1, selectionEnd + 1 + end));
+ if (event.key == minus) weight -= 0.1;
+ if (event.key == plus) weight += 0.1;
+
+ weight = parseFloat(weight.toPrecision(12));
+
+ target.value = target.value.slice(0, selectionEnd + 1) +
+ weight +
+ target.value.slice(selectionEnd + 1 + end - 1);
+
+ target.focus();
+ target.selectionStart = selectionStart;
+ target.selectionEnd = selectionEnd;
+ }
+});