From 359ae4bbaeb6d22270ce59102e9a85a75c2eab42 Mon Sep 17 00:00:00 2001 From: trapezoid Date: Thu, 24 Jul 2008 11:48:03 +0000 Subject: migemo_completion.js: initial release git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@16221 d0d07461-0603-4401-acd4-de1884942a52 --- migemo_completion.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 migemo_completion.js (limited to 'migemo_completion.js') 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) + })]; +},[""]); + -- cgit v1.2.3