aboutsummaryrefslogtreecommitdiffstats
path: root/asdfghjkl.js
diff options
context:
space:
mode:
Diffstat (limited to 'asdfghjkl.js')
-rw-r--r--asdfghjkl.js27
1 files changed, 19 insertions, 8 deletions
diff --git a/asdfghjkl.js b/asdfghjkl.js
index 2eafdde..ca662ae 100644
--- a/asdfghjkl.js
+++ b/asdfghjkl.js
@@ -3,7 +3,9 @@
// @description Inputting numbers by asdfghjkl; keys in hint mode.
// @description-ja Hintモードで、asdfghjkl;キーを使って数字入力をする。
// @license Creative Commons 2.1 (Attribution + Share Alike)
-// @version 1.1
+// @version 1.2
+// @minVersion 2.0pre
+// @maxVersion 2.0pre
// @author anekos (anekos@snca.net)
// ==/VimperatorPlugin==
//
@@ -26,6 +28,7 @@
{
let asdfghjkl_default = eval(liberator.globalVariables.asdfghjkl_default || 'false');
let mode_change_key = liberator.globalVariables.asdfghjkl_mode_change_key || '<Space>';
+ let useShift = eval(liberator.globalVariables.asdfghjkl_useShift || 'false');
let active = false;
let original = {
@@ -35,20 +38,28 @@
events.onKeyPress = function (event) {
if (modes.extended & modes.HINTS) {
+ let act = active;
let key = events.toString(event);
+ liberator.log(act);
if (key == mode_change_key) {
active = !active;
event.preventDefault();
event.stopPropagation();
return;
}
- if (active && key.length == 1) {
- let n = ';asdfghjkl'.indexOf(key);
- if (n >= 0) {
- events.feedkeys(n.toString(), true);
- event.preventDefault();
- event.stopPropagation();
- return;
+ if (key.length == 1) {
+ if (useShift && event.shiftKey) {
+ act = !act;
+ key = key.toLowerCase();
+ }
+ if (act) {
+ let n = ';asdfghjkl'.indexOf(key);
+ if (n >= 0) {
+ events.feedkeys(n.toString(), true);
+ event.preventDefault();
+ event.stopPropagation();
+ return;
+ }
}
}
}