aboutsummaryrefslogtreecommitdiffstats
path: root/migemo_completion.js
diff options
context:
space:
mode:
authoranekos2008-11-15 08:02:28 +0000
committeranekos2008-11-15 08:02:28 +0000
commit05b1a6073537ceaf7248ea720f85a472248c5f22 (patch)
treea8d5cc05ba8aa022d7a8cf316c33bf725b0eabe6 /migemo_completion.js
parent97fbbe66194d8981012e3f9035566c95dea716bd (diff)
downloadvimperator-plugins-05b1a6073537ceaf7248ea720f85a472248c5f22.tar.bz2
Head で正しく動作しなくなったため、Vimperator での実装に近い形に修正
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@23774 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'migemo_completion.js')
-rw-r--r--migemo_completion.js18
1 files changed, 15 insertions, 3 deletions
diff --git a/migemo_completion.js b/migemo_completion.js
index ccc0004..e245125 100644
--- a/migemo_completion.js
+++ b/migemo_completion.js
@@ -38,9 +38,11 @@
let original_filter = liberator.modules.completion.filter;
- liberator.modules.completion.filter = function(array,filter,matchFromBeginning){
- if(!filter) return array;
+ liberator.modules.completion.filter = function(array,filter,matchFromBeginning,favicon){
+ if (!filter)
+ return [[a[0], a[1], favicon ? a[2] : null] for each (a in array)];
+ // FIXME XUL/Migemo のバグに対処。治ったら消す
if(/[()|]/.test(filter))
return original_filter.apply(this,arguments);
@@ -56,6 +58,16 @@
return original_filter.apply(this,arguments);
}
- return array.filter(function([value,label]) migemoPattern.test(value) || migemoPattern.test(label));
+ let result = [];
+ for (let [,item] in Iterator(array)) {
+ let complist = item[0] instanceof Array ? item[0] : [item[0]];
+ for (let [,compitem] in Iterator(complist)) {
+ if (migemoPattern.test(compitem) || migemoPattern.test(item[1])) {
+ result.push([compitem,item[1],favicon ? item[2] : null]);
+ break;
+ }
+ }
+ }
+ return result;
};
})();