diff options
Diffstat (limited to 'asdfghjkl.js')
-rw-r--r-- | asdfghjkl.js | 27 |
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; + } } } } |