char-hint-mod2 を さらに修正

_checkUnique が n進数に対応することが想定されていなかったのでさらに修正しました。


processHintInput の 処理 を ざっくり削除しています。
よかったら試して下さい。


diff -r d6b9e080fec1 char-hints-mod2.js
--- a/char-hints-mod2.js	Mon May 10 03:22:12 2010 +0900
+++ b/char-hints-mod2.js	Mon May 10 20:05:55 2010 +0900
@@ -198,40 +198,15 @@
     } //}}}
     function processHintInput(hintInput, hints) //{{{
     {
-        if (timer) {
-            clearTimeout(timer);
-            timer = null;
-        }
         let start = getStartCount(hintchars.length, hints.length);
         let num = chars2num(hintInput)-start;
         if(num < 0) return;
 
-        let numstr = String(num);
-        for(let i=0,l=numstr.length;i<l;++i) {
-            let num = numstr[i];
-            // events.toString(e) return e.liberatorString
-            // if e.liberatorString.
-            // so alt handled as press number event by vimperator.
-            let alt = new Object;
-            alt.liberatorString = num;
-            charhints.original.onEvent.apply(hintContext,[alt]);
-        }
-        clearOriginalTimeout();
+        hintContext._hintNumber = Math.floor(num/10);
+        charhints.original.onEvent.apply(hintContext,[{
+            liberatorString: String(num%10)
+        }]);
         statusline.updateInputBuffer(hintInput);
-
-        let validHints = hints.filter(function(hint) isValidHint(hintInput, hint));
-        if(validHints.length == 1) {
-            charhints.original.processHints.apply(hintContext,[true]);
-            return true;
-        }
-
-        let timeout = options["hinttimeout"];
-        if (timeout > 0) {
-            timer = setTimeout(function () {
-                charhints.original.processHints.apply(hintContext,[true]);
-            }, timeout);
-        }
-
     } //}}}
 
     var hintInput = "";


これで直るといいなぁ…