aboutsummaryrefslogtreecommitdiffstats
path: root/autoIgnoreKey.js
blob: ce3de31b399f25c8e36ddba4993624a1f7d1c191 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
 * Auto switch Vimperator key navigation
 *
 * @author teramako teramako@gmail.com
 * @author halt feits <halt.feit at gmail.com>
 * @version 0.6pre
 */

(function(){

/**
 * String or RegExp
 * e.g)
 *  * /^https?:\/\/mail\.google\.com\//
 *  * 'http://reader.livedoor.com/reader/'
 *
 * The autoignorekey_pages is a string variable which can set on
 * vimperatorrc as following.
 *
 * let autoignorekey_pages = "['http://example.com/*', 'http://example.org/*']"
 *
 * or your can set it using inline JavaScript.
 *
 * javascript <<EOM
 * liberator.globalVariables.autoignorekey_pages = uneval([
 *   /^https?:\/\/mail\.google\.com\//,
 *   /^https?:\/\/www\.google\.com\/reader\//,
 * ]);
 * EOM
 */
const ignorePagesList = window.eval(liberator.globalVariables.autoignorekey_pages) || [
    /^https?:\/\/mail\.google\.com\//,
    /^http:\/\/(?:reader\.livedoor|fastladder)\.com\/(?:reader|public)\//,
].map(function(i)
    i instanceof RegExp ? i :
    i instanceof Array  ? new RegExp(String(i[0]), String(i[1])) :
    new RegExp("^" + String(i).replace(/\s+/g, "")
                              .replace(/[\\^$.+?|(){}\[\]]/g, "\\$&")
                              .replace(/(?=\*)/g, ".")
                   + "$", "i"));

document.getElementById('appcontent').addEventListener('DOMContentLoaded',passAllKeysIfTarget,false);
getBrowser().mTabBox.addEventListener('TabSelect',passAllKeysIfTarget,false);

function passAllKeysIfTarget() {
    var uri = content.document.documentURI;
    liberator.modules.modes.passAllKeys = isMatch(uri);
    //liberator.log('load page: ' + gBrowser.selectedBrowser.contentDocument.URL);
}

function isMatch(uri) ignorePagesList.some(function(e) e.test(uri))

})();
// vim:sw=4 ts=4 et:
">コマンドに別名(エイリアス|alias)をつける</description> <version>1.0.0</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> <updateURL>http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/alias.js</updateURL> <minVersion>2.3</minVersion> <maxVersion>2.3</maxVersion> <detail><![CDATA[ :alias <new-command-name> <old-command-name>: Define the alias with <new-command-name> for the command <old-command-name>. ]]></detail> <detail lang="ja"><![CDATA[ :alias <new-command-name> <old-command-name>: コマンド <old-command-name> <new-command-name> という別名をつけます ]]></detail> </VimperatorPlugin>; // }}} // INFO {{{ let INFO = <> <plugin name="alias" version="1.0.0" href="http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/alias.js" summary="Define the alias for a command." lang="en-US" xmlns="http://vimperator.org/namespaces/liberator"> <author email="anekos@snca.net">anekos</author> <license>New BSD License</license> <project name="Vimperator" minVersion="2.3"/> <item> <tags>:alias</tags> <spec>:alias <a>newCommandName</a> <a>oldCommandName</a></spec> <description> <p> Define the alias with <a>newCommandName</a> for the command <a>oldCommandName</a>. </p> </description> </item> <h3 tag="alias-examples">alias examples for .vimperatorrc</h3> <p>If you input directly these commands in vimperator commandline, remove the ":lazy".</p> <code><ex> :command! -nargs=+ lazy autocmd VimperatorEnter .* &lt;args> :lazy alias newName oldCommandName </ex></code> </plugin> <plugin name="alias" version="1.0.0" href="http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk/alias.js" summary="コマンドに別名(エイリアス|alias)をつける。" lang="ja" xmlns="http://vimperator.org/namespaces/liberator"> <author email="anekos@snca.net">anekos</author> <license>New BSD License</license> <project name="Vimperator" minVersion="2.3"/> <item> <tags>:alias</tags> <spec>:alias <a>newCommandName</a> <a>oldCommandName</a></spec> <description> <p> コマンド <a>oldCommandName</a> に <a>newCommandName</a> という別名をつけます。 </p> </description> </item> <h3 tag="alias-examples">alias examples for .vimperatorrc</h3> <p>If you input directly these commands in vimperator commandline, remove the ":lazy".</p> <code><ex> :command! -nargs=+ lazy autocmd VimperatorEnter .* &lt;args> :lazy alias newName oldCommandName </ex></code> </plugin> </>; // }}} (function () { commands.addUserCommand( ['alias'], 'Define the alias for a command.', function (args) { let [newName, oldName] = args; let cmd = commands.get(oldName); if (!cmd) return liberator.echoerr('Not found command with: ' + oldName); cmd.specs.push(newName); // XXX 必要でない気もする。実際コマンドの検索には要らない。 Command.prototype.init.call(cmd, cmd.specs, cmd.description, cmd.action); }, { completer: function (context, args) { if (args.completeArg == 1) return completion.command(context); } }, true ); })(); // vim:sw=2 ts=2 et si fdm=marker: