aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoranekos2008-11-07 11:39:55 +0000
committeranekos2008-11-07 11:39:55 +0000
commitcc306d3b3e99c8d79508dcda59e18cefef8b014f (patch)
treea257be6c4790bfe5d4efbce5a8a7fc039eb84421
parent1e5790159685a0d336c248b9a533f627165d831a (diff)
downloadvimperator-plugins-cc306d3b3e99c8d79508dcda59e18cefef8b014f.tar.bz2
Shift+ で、有効無効を反転できるようにした(要設定ON)
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@22948 d0d07461-0603-4401-acd4-de1884942a52
-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;
+ }
}
}
}