diff options
author | hogelog | 2009-04-03 21:57:30 +0000 |
---|---|---|
committer | hogelog | 2009-04-03 21:57:30 +0000 |
commit | 5ddb2cb0fac41547768a20a4b65456ceead5599a (patch) | |
tree | ec72fcb1d83df4f6aaa62e8c2135b00a97fc7ab3 | |
parent | 53f047ae8b42c3960835a1a108489419b774b240 (diff) | |
download | vimperator-plugins-5ddb2cb0fac41547768a20a4b65456ceead5599a.tar.bz2 |
間違ったコミットの取消
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@31877 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r-- | caret-hint.js | 145 | ||||
-rw-r--r-- | moreqmarks.js | 106 |
2 files changed, 76 insertions, 175 deletions
diff --git a/caret-hint.js b/caret-hint.js index 5bcaaed..008affd 100644 --- a/caret-hint.js +++ b/caret-hint.js @@ -36,9 +36,9 @@ THE POSSIBILITY OF SUCH DAMAGE. let PLUGIN_INFO = <VimperatorPlugin> <name>Caret Hint</name> - <description>Move caret position by hint</description> + <description>Move the caret position by hint</description> <description lang="ja">Hint を使ってキャレット位置を移動</description> - <version>1.2.1</version> + <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> @@ -46,145 +46,46 @@ let PLUGIN_INFO = <minVersion>2.0pre</minVersion> <maxVersion>2.0pre</maxVersion> <detail><![CDATA[ - Move caret position by hint. == Global Variables == - let g:caret_hint_key = 'c': - Hint mode key. - Move caret position to the head of selected element. - let g:caret_hint_tail_key = 'C': - Hint mode key. - Move caret position to the tail of selected element. - let g:caret_hint_select_key = '' (default: disabled): - Hint mode key. - Move caret position to the head of selected element, and select. - let g:caret_hint_select_tail_key = 'S': - Hint mode key. - Move caret position to the tail of selected element, and select. - let g:caret_hint_swap_key = 's': - The key mapping for Visual-mode. - Swap caret position head to tail. - If apply empty string ('') to these variables, these mapping or mode are not enabled. - == Global Variables 2 == - let g:caret_hint_xpath = '//*': - The XPath for hint-mode selection. + let g:caret_hint_key: + Hint mode key ]]></detail> <detail lang="ja"><![CDATA[ - Hint を使ってキャレット位置を移動 - == Global Variables 1 == - let g:caret_hint_key = 'c': - Hint モードのキー - 選択した要素の先頭にキャレットを移動する - let g:caret_hint_tail_key = 'C': - Hint モードのキー - 選択した要素の後尾にキャレットを移動する - let g:caret_hint_select_key = '' (デフォルト: 無効): - Hint モードのキー - 選択した要素の先頭にキャレットを移動し、要素を選択する - let g:caret_hint_select_tail_key = 'S': + == Global Variables == + let g:caret_hint_key: Hint モードのキー - 選択した要素の後尾にキャレットを移動し、要素を選択する - let g:caret_hint_swap_key = 's': - VISUAL モード用のキーマッピング - キャレットの位置を交換する(先頭 <=> 後尾) - これらの値に空文字列を与えれば、マッピングやモードは有効にされません。 - == Global Variables 2 == - let g:caret_hint_xpath = '//*': - ヒント対象要素を選択するための XPath ]]></detail> </VimperatorPlugin>; // }}} -/* _\|/_ - (o o) - +----oOO-{_}-OOo------------+ - |TODO count@action の使い道 | - | 要素 A-B 間を選択 | - +---------------------------*/ - - (function () { - // XXX 空白も有効 - let headMode = gval('caret_hint_key', 'c'); - let tailMode = gval('caret_hint_tail_key', 'C'); - let selectHeadMode = gval('caret_hint_select_key', ''); - let selectTailMode = gval('caret_hint_select_tail_key', 'S'); - let swapKey = gval('caret_hint_swap_key', 's'); - let hintXPath = liberator.globalVariables.caret_hint_xpath || '//*'; - - [ - [[true, false], headMode], - [[false, false], tailMode], - [[true, true ], selectHeadMode], - [[false, true ], selectTailMode], - ].forEach(function ([[h, s], m, d]) { - if (!m) - return; - hints.addMode( - m, - 'Move caret position to ' + (h ? 'head' : 'tail') + (s ? ' and Select' : ''), - function (elem, loc, count) moveCaret(elem, h, s), - function () hintXPath - ); - }); - - if (swapKey) { - mappings.addUserMap( - [modes.VISUAL], - [swapKey], - 'Swap caret position head to tail', - swapCaret, - {} - ); - } - - - function gval (name, def) { - let v = liberator.globalVariables[name]; - return (v === undefined) ? def : v; - } + let mode = liberator.globalVariables.caret_hint_key || 'c'; - function swapCaret () { - let win = new XPCNativeWrapper(window.content.window); - let s = win.getSelection(); - - if (s.rangeCount <= 0) - return false; - - // 位置交換時に元の情報が失われるので保存しておく - let [a, f] = [[s.anchorNode, s.anchorOffset], [s.focusNode, s.focusOffset]]; - s.collapse.apply(s, f); - s.extend.apply(s, a); - } - - function moveCaret (elem, head, select) { + function moveCaret (elem) { let doc = elem.ownerDocument; + let win = new XPCNativeWrapper(window.content.window); let sel = win.getSelection(); - let r = doc.createRange(); - sel.removeAllRanges(); - r.selectNodeContents(elem); - if (select) { - liberator.log('select') - mappings.getDefault(modes.NORMAL, 'i').action(); - mappings.getDefault(modes.CARET, 'v').action(); - } else { - liberator.log('not select') - if (head) { - r.setEnd(r.startContainer, r.startOffset); - } else { - r.setStart(r.endContainer, r.endOffset); - } - mappings.getDefault(modes.NORMAL, 'i').action(); - } + let r = doc.createRange(); + r.selectNodeContents(elem); + r.setEnd(r.startContainer, r.startOffset); sel.addRange(r); - - if (select && head) - swapCaret(); } + + hints.addMode( + 'c', + 'Move the caret position', + function (elem, _, count) { + moveCaret(elem); + mappings.getDefault(modes.NORMAL, 'i').action(); + }, + function () '//*' + ); + })(); // vim:sw=2 ts=2 et si fdm=marker: diff --git a/moreqmarks.js b/moreqmarks.js index b579cc0..477a437 100644 --- a/moreqmarks.js +++ b/moreqmarks.js @@ -33,13 +33,13 @@ var qmark_queue = []; // TODO: move to a storage module - var savedMarks = options.getPref("extensions.vimperator.moreqmarks", "").split("\n"); - var savedMarkStack = options.getPref("extensions.vimperator.moreqmarkstack", "").split("\n"); - var savedMarkQueue = options.getPref("extensions.vimperator.moreqmarkqueue", "").split("\n"); + var savedMarks = liberator.modules.options.getPref("extensions.vimperator.moreqmarks", "").split("\n"); + var savedMarkStack = liberator.modules.options.getPref("extensions.vimperator.moreqmarkstack", "").split("\n"); + var savedMarkQueue = liberator.modules.options.getPref("extensions.vimperator.moreqmarkqueue", "").split("\n"); // load the saved quickmarks -- TODO: change to sqlite if(use_default_data) { - var defaultMarks = options.getPref("extensions.vimperator.quickmarks", "").split("\n"); + var defaultMarks = liberator.modules.options.getPref("extensions.vimperator.quickmarks", "").split("\n"); for (var i = 0; i < defaultMarks.length - 1; i += 2) { var url = defaultMarks[i+1]; qmarks[defaultMarks[i]] = {url: url, x: 0, y: 0}; @@ -117,7 +117,7 @@ } function list_qmarks(marks) { if(use_position) { - var list = ":" + util.escapeHTML(commandline.command) + "<br/>" + + var list = ":" + liberator.modules.util.escapeHTML(liberator.modules.commandline.command) + "<br/>" + "<table><tr align=\"left\" class=\"hl-Title\"><th>mark</th><th>line</th><th>col</th><th>file</th></tr>"; for (var i = 0; i < marks.length; i++) { @@ -125,18 +125,18 @@ "<td> " + marks[i][0] + "</td>" + "<td align=\"right\">" + Math.round(marks[i][2] * 100) + "%</td>" + "<td align=\"right\">" + Math.round(marks[i][3] * 100) + "%</td>" + - "<td style=\"color: green;\">" + util.escapeHTML(marks[i][1]) + "</td>" + + "<td style=\"color: green;\">" + liberator.modules.util.escapeHTML(marks[i][1]) + "</td>" + "</tr>"; } list += "</table>"; return list; } else { - var list = ":" + util.escapeHTML(commandline.command) + "<br/>" + + var list = ":" + liberator.modules.util.escapeHTML(liberator.modules.commandline.command) + "<br/>" + "<table><tr align=\"left\" class=\"hl-Title\"><th>QuickMark</th><th>URL</th></tr>"; for (var i = 0; i < marks.length; i++) { list += "<tr><td> " + marks[i][0] + - "</td><td style=\"color: green;\">" + util.escapeHTML(marks[i][1]) + "</td></tr>"; + "</td><td style=\"color: green;\">" + liberator.modules.util.escapeHTML(marks[i][1]) + "</td></tr>"; } list += "</table>"; return list; @@ -148,10 +148,10 @@ var y = item.y; if (url) { if(find) { - for (let [number, browser] in Iterator(tabs.browsers)) { + for (let [number, browser] in Iterator(liberator.modules.tabs.browsers)) { var marked_url = browser.contentDocument.location.href; if(marked_url == url) { - tabs.select(number, false); + liberator.modules.tabs.select(number, false); var win = getBrowser().selectedTab.linkedBrowser.contentWindow; if(use_position) { if(x!=0 || y!=0) { @@ -194,7 +194,7 @@ savedQuickMarkStack += qmark_stack[mark].x + "\n"; savedQuickMarkStack += qmark_stack[mark].y + "\n"; } - options.setPref("extensions.vimperator.moreqmarkstack", savedQuickMarkStack); + liberator.modules.options.setPref("extensions.vimperator.moreqmarkstack", savedQuickMarkStack); break; case "queue": var savedQuickMarkQueue = ""; @@ -203,7 +203,7 @@ savedQuickMarkQueue += qmark_queue[mark].x + "\n"; savedQuickMarkQueue += qmark_queue[mark].y + "\n"; } - options.setPref("extensions.vimperator.moreqmarkqueue", savedQuickMarkQueue); + liberator.modules.options.setPref("extensions.vimperator.moreqmarkqueue", savedQuickMarkQueue); break; case "mark": default: @@ -214,14 +214,14 @@ savedQuickMarks += qmarks[mark].x + "\n"; savedQuickMarks += qmarks[mark].y + "\n"; } - options.setPref("extensions.vimperator.moreqmarks", savedQuickMarks); + liberator.modules.options.setPref("extensions.vimperator.moreqmarks", savedQuickMarks); if(use_default_data) { var savedQuickMarks = ""; for (var mark in qmarks) { savedQuickMarks += mark + "\n"; savedQuickMarks += qmarks[mark].url + "\n"; } - options.setPref("extensions.vimperator.quickmarks", savedQuickMarks); + liberator.modules.options.setPref("extensions.vimperator.quickmarks", savedQuickMarks); } break; } @@ -264,85 +264,85 @@ //// MAPPINGS - var modes = [modes.NORMAL]; + var modes = [liberator.modules.modes.NORMAL]; - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gj"], "Jump to QuickMark for current URL", function (arg) { - var where = /\bquickmark\b/.test(options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; - quickmarks.jumpTo(arg, where, true); + var where = /\bquickmark\b/.test(liberator.modules.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; + liberator.modules.quickmarks.jumpTo(arg, where, true); }, - { flags: mappings.flags.ARGUMENT }); + { flags: liberator.modules.Mappings.flags.ARGUMENT }); - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gd"], "Delete QuickMark for current URL", function () { - plugins.moreqmarks.remove('', buffer.URL); + liberator.plugins.moreqmarks.remove('', liberator.modules.buffer.URL); }); - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gs"], "Push QuickMarkStack for current URL", function () { - plugins.moreqmarks.add("", buffer.URL, "stack"); + liberator.plugins.moreqmarks.add("", liberator.modules.buffer.URL, "stack"); }); - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gS"], "Pop QuickMarkStack and Jump", function () { - var where = /\bquickmark\b/.test(options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; - if(quickmarks.jumpTo("", where, true, "stack")) { - quickmarks.remove("", "", "stack"); + var where = /\bquickmark\b/.test(liberator.modules.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; + if(liberator.modules.quickmarks.jumpTo("", where, true, "stack")) { + liberator.modules.quickmarks.remove("", "", "stack"); } }); - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gq"], "Queue QuickMarkQueue for current URL", function () { - liberator.plugins.moreqmarks.add("", buffer.URL, "queue"); + liberator.plugins.moreqmarks.add("", liberator.modules.buffer.URL, "queue"); }); - mappings.addUserMap(modes, + liberator.modules.mappings.addUserMap(modes, ["gQ"], "Dequeue QuickMarkStack and Jump", function () { - var where = /\bquickmark\b/.test(options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; - if(quickmarks.jumpTo("", where, true, "queue")) { - quickmarks.remove("", "", "queue"); + var where = /\bquickmark\b/.test(liberator.modules.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; + if(liberator.modules.quickmarks.jumpTo("", where, true, "queue")) { + liberator.modules.quickmarks.remove("", "", "queue"); } }); //// COMMANDS - commands.add(["qmarkpu[sh]", "qmpu[sh]"], "Push QuickMarkStack for current URL", + liberator.modules.commands.add(["qmarkpu[sh]", "qmpu[sh]"], "Push QuickMarkStack for current URL", function () { - liberator.plugins.moreqmarks.add("", buffer.URL, "stack"); + liberator.plugins.moreqmarks.add("", liberator.modules.buffer.URL, "stack"); }); - commands.add(["qmarkpo[p]", "qmpo[p]"], "Pop QuickMarkStack and Jump", + liberator.modules.commands.add(["qmarkpo[p]", "qmpo[p]"], "Pop QuickMarkStack and Jump", function () { - var where = /\bquickmark\b/.test(options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; - quickmarks.jumpTo("", where, true, "stack"); + var where = /\bquickmark\b/.test(liberator.modules.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; + liberator.modules.quickmarks.jumpTo("", where, true, "stack"); }); - commands.add(["stackli[st]", "stls"], "List QuickMarkStack", + liberator.modules.commands.add(["stackli[st]", "stls"], "List QuickMarkStack", function () { liberator.plugins.moreqmarks.list("", "stack"); }); - commands.add(["qmarkqu[eue]", "qmqu[eue]"], "Queue QuickMarkQueue for current URL", + liberator.modules.commands.add(["qmarkqu[eue]", "qmqu[eue]"], "Queue QuickMarkQueue for current URL", function () { - liberator.plugins.moreqmarks.add("", buffer.URL, "queue"); + liberator.plugins.moreqmarks.add("", liberator.modules.buffer.URL, "queue"); }); - commands.add(["qmarkde[que]", "qmde[que]"], "Dequeue QuickMarkStack and Jump", + liberator.modules.commands.add(["qmarkde[que]", "qmde[que]"], "Dequeue QuickMarkStack and Jump", function () { - var where = /\bquickmark\b/.test(options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; - quickmarks.jumpTo("", where, true, "queue"); + var where = /\bquickmark\b/.test(liberator.modules.options["activate"]) ? liberator.NEW_TAB : liberator.NEW_BACKGROUND_TAB; + liberator.modules.quickmarks.jumpTo("", where, true, "queue"); }); - commands.add(["queueli[st]", "quli[st]"], "List QuickMarkQueue", + liberator.modules.commands.add(["queueli[st]", "quli[st]"], "List QuickMarkQueue", function () { liberator.plugins.moreqmarks.list("", "queue"); @@ -366,11 +366,11 @@ } add_qmark(qmark, {url: url, x: x, y: y}, target); var message = (target?target+" : ":"add : "+qmark+" | ")+"("+x*100+"%, "+y*100+"%) | "+url; - commandline.echo(message, commandline.HL_INFOMSG) + liberator.modules.commandline.echo(message, liberator.modules.commandline.HL_INFOMSG) } else { add_qmark(qmark, {url: url, x: 0, y: 0}, target); var message = (target?target+" : ":"add : "+qmark+" | ")+url; - commandline.echo(message, commandline.HL_INFOMSG); + liberator.modules.commandline.echo(message, liberator.modules.commandline.HL_INFOMSG); } save_qmarks(target); }, @@ -381,7 +381,7 @@ switch(target) { case "stack": if(item = qmark_stack.pop()) { - commandline.echo("pop "+item.url, commandline.HL_INFOMSG); + liberator.modules.commandline.echo("pop "+item.url, liberator.modules.commandline.HL_INFOMSG); save_qmarks("stack"); } else { liberator.echoerr('No QuickStack set'); @@ -390,7 +390,7 @@ case "queue": var item; if(item = qmark_queue.pop()) { - commandline.echo("dequeue "+item.url, commandline.HL_INFOMSG); + liberator.modules.commandline.echo("dequeue "+item.url, liberator.modules.commandline.HL_INFOMSG); save_qmarks("queue"); } else { liberator.echoerr('No QuickQueue set'); @@ -402,7 +402,7 @@ for(var mark in qmarks) { if(url == qmarks[mark].url) { delete qmarks[mark]; - commandline.echo("delete qmark "+mark, commandline.HL_INFOMSG); + liberator.modules.commandline.echo("delete qmark "+mark, liberator.modules.commandline.HL_INFOMSG); save_qmarks("mark"); return; } @@ -414,7 +414,7 @@ for (var qmark in qmarks) { if (pattern.test(qmark)) { delete qmarks[qmark]; - commandline.echo("delete qmark "+qmark, commandline.HL_INFOMSG); + liberator.modules.commandline.echo("delete qmark "+qmark, liberator.modules.commandline.HL_INFOMSG); save_qmarks("mark"); return; } @@ -482,7 +482,7 @@ } var list = list_qmarks(marks); - commandline.echo(list, commandline.HL_NORMAL, commandline.FORCE_MULTILINE); + liberator.modules.commandline.echo(list, liberator.modules.commandline.HL_NORMAL, liberator.modules.commandline.FORCE_MULTILINE); }, destroy: function () @@ -494,7 +494,7 @@ } }; for(var name in liberator.plugins.moreqmarks) { - quickmarks[name] = liberator.plugins.moreqmarks[name]; + liberator.modules.quickmarks[name] = liberator.plugins.moreqmarks[name]; } })(); // vim: set sw=4 ts=4 et: |