diff options
author | anekos | 2008-11-07 11:44:12 +0000 |
---|---|---|
committer | anekos | 2008-11-07 11:44:12 +0000 |
commit | 94fb1e9f847f99e2f31ee41228d1232990485b93 (patch) | |
tree | e3d31182ba4a05deea1e78f1d219e0c3ebe18421 /migemo_completion.js | |
parent | fffe7bd127de0f9d7f7a6ec3b2758026aad37848 (diff) | |
download | vimperator-plugins-94fb1e9f847f99e2f31ee41228d1232990485b93.tar.bz2 |
入力そのままの文字でも検索できるようにした。
XUL/Migemo のバグに暫定対応
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@22950 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'migemo_completion.js')
-rw-r--r-- | migemo_completion.js | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/migemo_completion.js b/migemo_completion.js index 255725f..718cb1d 100644 --- a/migemo_completion.js +++ b/migemo_completion.js @@ -19,13 +19,11 @@ **/
(function () {
- var XMigemoCore;
- try{
- XMigemoCore = Components.classes['@piro.sakura.ne.jp/xmigemo/factory;1']
+ var XMigemoCore = Components.classes['@piro.sakura.ne.jp/xmigemo/factory;1']
.getService(Components.interfaces.pIXMigemoFactory)
.getService("ja");
- }
- catch(ex if ex instanceof TypeError){}
+ var XMigemoTextUtils = Components.classes['@piro.sakura.ne.jp/xmigemo/text-utility;1']
+ .getService(Components.interfaces.pIXMigemoTextUtils);
function replaceFunction(target,symbol,f,originalArguments){
var oldFunction = target[symbol];
@@ -42,10 +40,19 @@ liberator.modules.completion.filter = function(array,filter,matchFromBeginning){
if(!filter) return array;
- var migemoString = XMigemoCore.getRegExp(filter);
- if(matchFromBeginning)
- migemoString ="^(" + migemoString + ")";
- var migemoPattern = new RegExp(migemoString);
+ if (filter.match(/[()|]/))
+ return original_filter.apply(this, arguments);
+
+ try {
+ var original = XMigemoTextUtils.sanitize(filter);
+ var migemoString = XMigemoCore.getRegExp(filter);
+ migemoString = original + '|' + migemoString;
+ if(matchFromBeginning)
+ migemoString ="^(" + migemoString + ")";
+ var migemoPattern = new RegExp(migemoString, 'i');
+ } catch (e) {
+ return original_filter.apply(this, arguments);
+ }
return array.filter(function([value,label]){
return migemoPattern.test(value) || migemoPattern.test(label)
|