diff options
author | trapezoid | 2008-07-24 11:48:03 +0000 |
---|---|---|
committer | trapezoid | 2008-07-24 11:48:03 +0000 |
commit | 359ae4bbaeb6d22270ce59102e9a85a75c2eab42 (patch) | |
tree | 5788a0121d971a6beaaef374980ae26160d59fc6 /migemo_completion.js | |
parent | eb816b7513b5035a42e1af69127bc3865e3abc15 (diff) | |
download | vimperator-plugins-359ae4bbaeb6d22270ce59102e9a85a75c2eab42.tar.bz2 |
migemo_completion.js: initial release
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@16221 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'migemo_completion.js')
-rw-r--r-- | migemo_completion.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/migemo_completion.js b/migemo_completion.js new file mode 100644 index 0000000..824f87d --- /dev/null +++ b/migemo_completion.js @@ -0,0 +1,33 @@ +/**
+ * ==VimperatorPlugin==
+ * @name migemo_completion.js
+ * @description replace completion function with using Migemo
+ * @description-ja 補完関数をMigemoを使用したものに取り替える
+ * @author Trapezoid
+ * @version 0.1
+ * ==/VimperatorPlugin==
+ *
+ * Support commands:
+ * - :buffer
+ **/
+var XMigemoCore;
+try{
+ XMigemoCore = Components.classes['@piro.sakura.ne.jp/xmigemo/factory;1']
+ .getService(Components.interfaces.pIXMigemoFactory)
+ .getService("ja");
+}
+catch(ex if ex instanceof TypeError){}
+
+function replaceFunction(target,symbol,f,originalArguments){
+ var oldFunction = target[symbol];
+ target[symbol] = function() f.apply(target,[oldFunction.apply(target,originalArguments || arguments), arguments]);
+}
+
+replaceFunction(liberator.completion,"buffer",function(oldResult,args){
+ var filter = args[0];
+ var migemoPattern = new RegExp(XMigemoCore.getRegExp(filter));
+ return [0, oldResult[1].filter(function([value,label]){
+ return migemoPattern.test(value) || migemoPattern.test(label)
+ })];
+},[""]);
+
|