aboutsummaryrefslogtreecommitdiffstats
path: root/migemo_hint.js
blob: 1fbe291b65bb6b90132ecd447aa5575a1e78bc09 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Vimperator plugin: 'Hint Matching with XUL/Migemo'
// Last Change: 05-Feb-2009.
// License: Creative Commons
// Maintainer: Trapezoid <trapezoid.g@gmail.com> - http://unsigned.g.hatena.ne.jp/Trapezoid
// Require: XUL/Migemo add-on - https://addons.mozilla.org/firefox/addon/5239
//
// extended hint matching with migemo for Vimperator
//
// Usage:
//  :set hintmatching = custom
liberator.plugins.customHintMatcher = function(inputString){
    var XMigemoCore, XMigemoTextUtils;
    try{
        XMigemoCore = Cc['@piro.sakura.ne.jp/xmigemo/factory;1']
                                .getService(Components.interfaces.pIXMigemoFactory)
                                .getService('ja');
        XMigemoTextUtils = Cc['@piro.sakura.ne.jp/xmigemo/text-utility;1']
                                .getService(Ci.pIXMigemoTextUtils);
    }
    catch(ex if ex instanceof TypeError){}
    var r = new RegExp(XMigemoTextUtils.getANDFindRegExpFromTerms(XMigemoCore.getRegExps(inputString)), 'gi');
    return function(hintString) r.test(hintString);
};
L, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ################################################################################### # http://sourceforge.jp/projects/opensource/wiki/licenses%2Fnew_BSD_license # # に参考になる日本語訳がありますが、有効なのは上記英文となります。 # ################################################################################### }}} */ // PLUGIN_INFO {{{ let PLUGIN_INFO = <VimperatorPlugin> <name>Auto Reload</name> <name lang="ja">自動リロード</name> <description>Watch local file, and automatically reload current page when the file is modified.</description> <description lang="ja">ローカルのファイルを監視して現在のページをリロードする</description> <version>1.0.1</version> <author mail="anekos@snca.net" homepage="http://d.hatena.ne.jp/nokturnalmortum/">anekos</author> <license>new BSD License (Please read the source code comments of this plugin)</license> <license lang="ja">修正BSDライセンス (ソースコードのコメントを参照してください)</license> <minVersion>2.3pre</minVersion> <maxVersion>2.3pre</maxVersion> <detail><![CDATA[ 制作中 ]]></detail> <detail lang="ja"><![CDATA[ 制作中 ]]></detail> </VimperatorPlugin>; // }}} (function () { let uuid = '{e49e10b3-a867-457a-8c4e-dbe09e3b285a}'; commands.addUserCommand( ['autoreload'], 'Auto reload current tab', function (args) { let tab = gBrowser.mCurrentTab; let storage = tab[this.uuid] || (tab[this.uuid] = {}); let reload; let func = reload = function () tabs.reload(tab); let time = parseInt(parseFloat(args[0] || 1) * 1000); let (file = io.File(args.string)) { if (file.exists() && file.isFile()) { let filepath = file.path; storage.lastModifiedTime = file.lastModifiedTime; time = 200; func = function () { let file = io.File(filepath); let mt = file.lastModifiedTime; if (storage.lastModifiedTime == mt) return; storage.lastModifiedTime = mt; reload(); }; } } if (storage.timer) { liberator.log('removed'); clearInterval(storage.timer); } storage.timer = setInterval(func, time); }, { completer: function (context, args) completion.file(context) }, true ); })(); // vim:sw=2 ts=2 et si fdm=marker: