aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhogelog2009-04-03 21:57:30 +0000
committerhogelog2009-04-03 21:57:30 +0000
commit5ddb2cb0fac41547768a20a4b65456ceead5599a (patch)
treeec72fcb1d83df4f6aaa62e8c2135b00a97fc7ab3
parent53f047ae8b42c3960835a1a108489419b774b240 (diff)
downloadvimperator-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.js145
-rw-r--r--moreqmarks.js106
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: