// ==VimperatorPlugin== // @name memo // @description to write a memo // @description-ja メモを書く // @license Creative Commons 2.1 (Attribution + Share Alike) // @version 1.0 // @author anekos (anekos@snca.net) // @maxVersion 2.0pre // @minVersion 2.0pre // ==/VimperatorPlugin== // // Usage: // :memo // show the memo that was written. // :memo fooooobar! // write "fooooobar!" to the specified memo file. // // Usage-ja: // :memo // 書かれたメモを表示する // :memo fooooobar! // "fooooobar!" と、メモに書く // // Links: // // References: // http://developer.mozilla.org/index.php?title=Ja/Code_snippets/File_I%2F%2FO (function () { let localfilepath = liberator.globalVariables.memo_filepath || io.expandPath('~/.vimpmemo'); let charset = 'UTF-8'; //ネタ的 let lz = function(s,n)(s+'').replace(new RegExp('^.{0,'+(n-1)+'}$'),function(s)lz('0'+s,n)); function dateTime () { with (new Date()) return lz(getFullYear(), 4) + '/' + lz(getMonth() + 1, 2) + '/' + lz(getDate(), 2) + ' ' + lz(getHours(), 2) + ':' + lz(getMinutes(), 2); } function filepath () { let result = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); result.initWithPath(localfilepath); return result; } function puts (line) { line = dateTime() + "\t" + line + "\n"; let out = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); let conv = Cc['@mozilla.org/intl/converter-output-stream;1']. createInstance(Ci.nsIConverterOutputStream); out.init(filepath(), 0x02 | 0x10 | 0x08, 0664, 0); conv.init(out, charset, line.length, Components.interfaces.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); conv.writeString(line); conv.close(); out.close(); } function gets () { let file = Cc['@mozilla.org/network/file-input-stream;1'].createInstance(Ci.nsIFileInputStream); file.init(filepath(), 1, 0, false); let conv = Cc['@mozilla.org/intl/converter-input-stream;1'].createInstance(Ci.nsIConverterInputStream); conv.init(file, charset, file.available(), conv.DEFAULT_REPLACEMENT_CHARACTER); let result = {}; conv.readString(file.available(), result); conv.close(); file.close(); return result.value; } commands.addUserCommand( ['memo'], 'Write memo', function (arg) { if (arg.string) { puts(arg.string); } else { liberator.echo(gets()); } } ); })(); 1ef9e52fa448f9956a34375e5e47bb1d'/>
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: