aboutsummaryrefslogtreecommitdiffstats
path: root/migemized_find.js
diff options
context:
space:
mode:
authoranekos2008-08-12 20:23:57 +0000
committeranekos2008-08-12 20:23:57 +0000
commitd971b82f45097e4a6e0b5a4a7de28dda91893b6f (patch)
treeadb40181c1386ff7011221c7bacce2b6c89b4c56 /migemized_find.js
parent0265f1336659ce20d7748b1269fb636105d5a7b9 (diff)
downloadvimperator-plugins-d971b82f45097e4a6e0b5a4a7de28dda91893b6f.tar.bz2
キャンセルしたときに検索文字列をリセットするようにした。
見つからないときにエラーメッセージを出すようにした。 git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@17562 d0d07461-0603-4401-acd4-de1884942a52
Diffstat (limited to 'migemized_find.js')
-rw-r--r--migemized_find.js24
1 files changed, 22 insertions, 2 deletions
diff --git a/migemized_find.js b/migemized_find.js
index 7fcfc8a..d56d05c 100644
--- a/migemized_find.js
+++ b/migemized_find.js
@@ -24,9 +24,25 @@
// findMode := FIND_MODE_NATIVE | FIND_MODE_MIGEMO | FIND_MODE_REGEXP
+ let elem = document.getElementById('FindToolbar').getElement('findbar-textbox');
+ const DOMUtils = Components.classes["@mozilla.org/inspector/dom-utils;1"].
+ getService(Components.interfaces["inIDOMUtils"]);
+
+ let previousKeyword = null;
let lastKeyword = null;
let original = {};
+ const findbarTextbox = document.getElementById('FindToolbar').getElement('findbar-textbox');
+
+ // アレな方法で not found を検出
+ function isNotFound () {
+ let rules = DOMUtils.getCSSStyleRules(elem);
+ for (let i = 0; i < rules.Count(); i++) {
+ if (rules.GetElementAt(i).selectorText.indexOf('notfound') >= 0)
+ return true;
+ }
+ }
+
// 検索文字列から検索モードと検索文字列を得る。
function getFindMode (str) {
let [head, tail] = [str[0], str.slice(1)];
@@ -47,19 +63,23 @@
if (!word)
return;
XMigemoFind.findMode = mode;
- XMigemoFind.find(backwards, lastKeyword = word, true);
+ let found = XMigemoFind.find(backwards, lastKeyword = word, true);
+ liberator.log(XMigemoFind.NOTFOUND);
},
findAgain: function findAgain (reverse) {
- XMigemoFind.find(reverse, lastKeyword, true);
+ let found = XMigemoFind.find(reverse, lastKeyword || previousKeyword, true);
+ liberator.log(XMigemoFind.NOTFOUND);
},
searchSubmitted: function searchSubmitted (command, forcedBackward) {
+ previousKeyword = lastKeyword;
XMigemoFind.clear(false);
liberator.modes.reset();
},
searchCanceled: function searchCanceled () {
+ lastKeyword = null;
XMigemoFind.clear(false);
},
};