diff options
author | anekos | 2008-08-12 20:23:57 +0000 |
---|---|---|
committer | anekos | 2008-08-12 20:23:57 +0000 |
commit | d971b82f45097e4a6e0b5a4a7de28dda91893b6f (patch) | |
tree | adb40181c1386ff7011221c7bacce2b6c89b4c56 /migemized_find.js | |
parent | 0265f1336659ce20d7748b1269fb636105d5a7b9 (diff) | |
download | vimperator-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.js | 24 |
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); }, }; |