diff options
author | teramako | 2008-09-21 12:14:40 +0000 |
---|---|---|
committer | teramako | 2008-09-21 12:14:40 +0000 |
commit | 0880257f8b73f6bc308542a80ed470295492c9fd (patch) | |
tree | c86ec37f16838964b9c01daf24f7513ee400aa8f | |
parent | 71bc77076d8233a2340a14f8eefe8a6bcadcf30c (diff) | |
download | vimperator-plugins-0880257f8b73f6bc308542a80ed470295492c9fd.tar.bz2 |
Fix:
* indent
* command arguments handling
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@19677 d0d07461-0603-4401-acd4-de1884942a52
-rw-r--r-- | bookmarktoolbar-hint.js | 6 | ||||
-rw-r--r-- | copy.js | 4 | ||||
-rw-r--r-- | lookupDictionary.js | 13 | ||||
-rw-r--r-- | splitBrowser.js | 186 |
4 files changed, 110 insertions, 99 deletions
diff --git a/bookmarktoolbar-hint.js b/bookmarktoolbar-hint.js index c84e4bb..297a7a7 100644 --- a/bookmarktoolbar-hint.js +++ b/bookmarktoolbar-hint.js @@ -200,10 +200,12 @@ liberator.plugins.bookmarkToolbarHints = (function(){ liberator.mappings.addUserMap([liberator.modes.NORMAL], ['<Leader>f'], 'Start Toolbar-HINTS (open current tab)', - function(){ plugins.bookmarkToolbarHints.startup(liberator.CURRENT_TAB); } + function(){ plugins.bookmarkToolbarHints.startup(liberator.CURRENT_TAB); }, + { rhs: 'Bookmarks Toolbar-HINTS (current-tab)'} ); liberator.mappings.addUserMap([liberator.modes.NORMAL], ['<Leader>F'], 'Start Toolbar-HINTS (open new tab)', - function(){ plugins.bookmarkToolbarHints.startup(liberator.NEW_TAB); } + function(){ plugins.bookmarkToolbarHints.startup(liberator.NEW_TAB); }, + { rhs: 'Bookmarks Toolbar-HINTS (new-tab)' } ); @@ -103,7 +103,9 @@ liberator.commands.addUserCommand(['copy'],'Copy to clipboard', function addUserMap(label, map){ liberator.mappings.addUserMap([liberator.modes.NORMAL,liberator.modes.VISUAL], map, - label, function(){ liberator.plugins.exCopy.copy(label); } + label, + function(){ liberator.plugins.exCopy.copy(label); }, + { rhs: label } ); } function getCopyTemplate(label){ diff --git a/lookupDictionary.js b/lookupDictionary.js index e487b04..de5cbb8 100644 --- a/lookupDictionary.js +++ b/lookupDictionary.js @@ -12,7 +12,7 @@ names: ['eiji[ro]'], url: 'http://eow.alc.co.jp/%s/UTF-8/', shortHelp: 'SPACE ALC (英辞郎 on the Web)', - xpath: '//*[@id="resultList"]' + xpath: 'id("resultList")' },{ names: ['goo'], url: 'http://dictionary.goo.ne.jp/search.php?MT=%s&kind=all&mode=0', @@ -20,6 +20,17 @@ encode: 'EUC-JP', xpath: '//div[@id="incontents"]/*[@class="ch04" or @class="fs14" or contains(@class,"diclst")]', multi: true +},{ + names: ['infokanji'], + url: 'http://dictionary.www.infoseek.co.jp/?sc=1&se=on&lp=0&gr=kj&sv=KJ&qt=&qty=%s&qtb=&qtk=0', + shorthelp: 'Infoseek 漢字辞書', + encode: 'EUC-JP', + xpath: '//div[@class="NetDicHead"]' +},{ + names: ['answers'], + url: 'http://www.answers.com/%s', + shortHelp: 'Answers.com(英英辞書)', + xpath: 'id("firstDs")' }].forEach(function(dictionary){ liberator.commands.addUserCommand( dictionary.names, diff --git a/splitBrowser.js b/splitBrowser.js index b735004..70460f3 100644 --- a/splitBrowser.js +++ b/splitBrowser.js @@ -2,7 +2,7 @@ * ==VimperatorPlugin== * @name Split Browser for Vimperator * @author teramako <teramako@gmail.com> - * @version 1.1a + * @version 1.1b * @depend "Split Browser" {29c4afe1-db19-4298-8785-fcc94d1d6c1d} * ==/VimperatorPlugin== * @@ -18,12 +18,12 @@ * ---------------------------- * Commands * ---------------------------- - * :sp[lit] [arg1], [arg2], ... [destination] + * :sp[lit] [arg1] [arg2] ... [destination] * split horizontal and open [arg1] * opens [arg2] ... to background tab, if [arg2] ... is applied * [destination] is -top, if omitted * - * :vs[plit] [arg1], [arg2], ... [destination] + * :vs[plit] [arg1] [arg2] ... [destination] * like sp[lit] command * but [destination] is -right, if omitted * @@ -63,18 +63,10 @@ if (!Application.extensions.get(SplitBrowserAppID).enabled) return; liberator.plugins.splitBrowser = (function(){ -/* -var origGetBrowser = getBrowser; - -getBrowser = function(){ - return SplitBrowser.activeBrowser; -}; -*/ -function getPositionForOpen(args){ +function getPositionForOpen(obj){ var p = null; - if (!args || args.length == 0) return p; - for (var i=0; i<args.length; i++){ - switch (args[i][0]){ + for (var i in obj){ + switch (i){ case '-l': p = SplitBrowser.POSITION_LEFT; break; case '-r': p = SplitBrowser.POSITION_RIGHT; break; case '-t': p = SplitBrowser.POSITION_TOP; break; @@ -123,27 +115,36 @@ function focusSwitch(where, isAbsolute){ //{{{ } } //}}} +var commandExtra = { + completer: function(filter) liberator.completion.url(filter), + options: [ [['-l','-left'], liberator.commands.OPTION_NOARG], + [['-r','-right'], liberator.commands.OPTION_NOARG], + [['-t','-top'], liberator.commands.OPTION_NOARG], + [['-b','-bottom'], liberator.commands.OPTION_NOARG] ], + argCount: "*" +}; + /* ---------------------------------------------- * Commands * --------------------------------------------*/ liberator.commands.addUserCommand(['sp[lit]'], 'split browser', //{{{ - function(args){ liberator.plugins.splitBrowser.openSubBrowser(args, SplitBrowser.POSITION_TOP); }, - { completer: function(filter) liberator.completion.url(filter) } + function(args){ liberator.plugins.splitBrowser.openSubBrowser(args, SplitBrowser.POSITION_TOP); }, + commandExtra ); //}}} liberator.commands.addUserCommand(['vs[plit]'], 'split browser', //{{{ - function(args){ liberator.plugins.splitBrowser.openSubBrowser(args, SplitBrowser.POSITION_RIGHT); }, - { completer: function(filter) liberator.completion.url(filter) } + function(args){ liberator.plugins.splitBrowser.openSubBrowser(args, SplitBrowser.POSITION_RIGHT); }, + commandExtra ); //}}} liberator.commands.addUserCommand(['on[ly]'], 'Close or gather all subbrowsers', //{{{ - function(args){ - if (SplitBrowser.browsers.length == 0) { - liberator.echoerr('SubBrowser is none'); + function(args){ + if (SplitBrowser.browsers.length == 0) { + liberator.echoerr('SubBrowser is none'); return; } if (args == '-g') { SplitBrowser.gatherSubBrowsers(); } else { - SplitBrowser.removeAllSubBrowsers(); + SplitBrowser.removeAllSubBrowsers(); } } ); //}}} @@ -163,12 +164,13 @@ liberator.mappings.addUserMap([liberator.modes.NORMAL],['s'], 'SplitBrowser moti gBrowser = document.getElementById('content'); } },{ - flags: liberator.Mappings.flags.MOTION + liberator.Mappings.flags.COUNT + flags: liberator.Mappings.flags.MOTION + liberator.Mappings.flags.COUNT, + rhs: 'Motion map for SplitBrowser' } ); //}}} liberator.mappings.addUserMap([liberator.modes.NORMAL], ['<C-w>'], 'select subbrowser', //{{{ - function(count, key){ + function(count, key){ if (/[1-9]/.test(key)){ focusSwitch(parseInt(key), true); return; @@ -199,91 +201,85 @@ liberator.mappings.addUserMap([liberator.modes.NORMAL], ['<C-w>'], 'select subbr liberator.plugins.splitBrowser.openSubBrowser(liberator.buffer.URL,SplitBrowser.POSITION_TOP); break; } - },{ flags: liberator.Mappings.flags.COUNT + liberator.Mappings.flags.ARGUMENT } + },{ + flags: liberator.Mappings.flags.COUNT + liberator.Mappings.flags.ARGUMENT, + rhs: 'select subbrowser' + } ); //}}} /** * Overwrite liberator.open for SplitBrowser * @see liberator.js::vimperaotr.open */ -liberator.open = function(urls, where){ //{{{ - if (typeof urls == 'string') urls = liberator.util.stringToURLArray(urls); - if (urls.length == 0) return false; +liberator.open = function(urls, where, force){ //{{{ + if (typeof urls == 'string') urls = liberator.util.stringToURLArray(urls); + if (urls.length > 20 && !force){ + liberator.commandline.input("This will open " + urls.length + " new tabs. Would you like to continue? (yes/[no])", + function (resp) { if (resp && resp.match(/^y(es)?$/i)) liberator.open(urls, where, true); }); + return true; + } + if (urls.length == 0) return false; if (liberator.forceNewTab && liberator.has("tabs")){ where = liberator.NEW_TAB; } else if (!where || !liberator.has("tabs")){ where = liberator.CURRENT_TAB; } - var url = typeof urls[0] == 'string' ? urls[0] : urls[0][0]; - var postdata = typeof urls[0] == 'string' ? null : urls[0][1]; - var whichwindow = window; - var activeBrowser = SplitBrowser.activeBrowser; + var url = typeof urls[0] == 'string' ? urls[0] : urls[0][0]; + var postdata = typeof urls[0] == 'string' ? null : urls[0][1]; + var whichwindow = window; + var activeBrowser = SplitBrowser.activeBrowser; - switch (where) { - case liberator.CURRENT_TAB: - activeBrowser.loadURIWithFlags(url, null, null, null, postdata); - break; - case liberator.NEW_TAB: - var firsttab = activeBrowser.addTab(url, null, null, postdata); - activeBrowser.selectedTab = firsttab; - break; - case liberator.NEW_BACKGROUND_TAB: - activeBrowser.addTab(url, null, null, postdata); - break; - case liberator.NEW_WINDOW: - window.open(); - var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] - .getService(Components.interfaces.nsIWindowMediator); - whichwindow = vm.getMostRecentWindow('navigator:browser'); - whichwindow.loadURI(url, null, postdata); - break; - default: - liberator.echoerr("Exxx: Invalid 'where' directive in liberator.open(...)"); - return false; - } + switch (where) { + case liberator.CURRENT_TAB: + activeBrowser.loadURIWithFlags(url, null, null, null, postdata); + break; + case liberator.NEW_TAB: + var firsttab = activeBrowser.addTab(url, null, null, postdata); + activeBrowser.selectedTab = firsttab; + break; + case liberator.NEW_BACKGROUND_TAB: + activeBrowser.addTab(url, null, null, postdata); + break; + case liberator.NEW_WINDOW: + window.open(); + var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] + .getService(Components.interfaces.nsIWindowMediator); + whichwindow = vm.getMostRecentWindow('navigator:browser'); + whichwindow.loadURI(url, null, postdata); + break; + default: + liberator.echoerr("Exxx: Invalid 'where' directive in liberator.open(...)"); + return false; + } if (!liberator.has("tabs")) return true; - for (var i=1, l=urls.length; i < l; i++){ - url = typeof urls[i] == 'string' ? urls[i] : urls[i][0]; - postdata = typeof urls[i] == 'string' ? null : urls[i][1]; - whichwindow.SplitBrowser.activeBrowser.addTab(url, null, null, postdata); - } + for (var i=1, l=urls.length; i < l; i++){ + url = typeof urls[i] == 'string' ? urls[i] : urls[i][0]; + postdata = typeof urls[i] == 'string' ? null : urls[i][1]; + whichwindow.SplitBrowser.activeBrowser.addTab(url, null, null, postdata); + } return true; }; //}}} var manager = { splitBrowserId: SplitBrowserAppID, - args: [ [['-l','-left'], liberator.commands.OPTION_NOARG], - [['-r','-right'], liberator.commands.OPTION_NOARG], - [['-t','-top'], liberator.commands.OPTION_NOARG], - [['-b','-bottom'], liberator.commands.OPTION_NOARG] ], - get gBrowser(){ - return origGetBrowser(); - }, /** * create new subBrowser and load url - * @param {String} args command aruguments + * @param {Object} args command aruguments * @param {Number} defPosition default split direction */ openSubBrowser: function(args, defPosition){ var url; var urls = []; var position = defPosition || SplitBrowser.POSITION_TOP; - if (args){ - var res = liberator.commands.parseArgs(args, this.args); - position = getPositionForOpen(res.opts) || position; - if (res.args.length > 0){ - liberator.log(res.args); - urls = liberator.util.stringToURLArray(res.args.join(' ')); - liberator.log(urls); - if (urls.length == 0) { - url = liberator.buffer.URL; - } else { - url = urls[0]; - urls.shift(); - } - } else { + position = getPositionForOpen(args) || position; + if (args.arguments.length > 0){ + urls = liberator.util.stringToURLArray(args.arguments.join(', ')); + if (urls.length == 0) { url = liberator.buffer.URL; + } else { + url = urls[0]; + urls.shift(); } } else { url = liberator.buffer.URL; @@ -298,19 +294,19 @@ var manager = { }); return subBrowser; }, - closeSubBrowser: function(){ - var b = SplitBrowser.activeBrowser; - if (b.mTabs.length > 1){ - b.removeTab(b.mCurrentTab); - } else { - if (b === getBrowser()){ - liberator.open('about:blank', liberator.NEW_BACKGROUND_TAB); - getBrowser().removeTab(gBrowser.mCurrentTab); - } else { - SplitBrowser.activeBrowserCloseWindow(); - } - } - } + closeSubBrowser: function(){ + var b = SplitBrowser.activeBrowser; + if (b.mTabs.length > 1){ + b.removeTab(b.mCurrentTab); + } else { + if (b === getBrowser()){ + liberator.open('about:blank', liberator.NEW_BACKGROUND_TAB); + getBrowser().removeTab(gBrowser.mCurrentTab); + } else { + SplitBrowser.activeBrowserCloseWindow(); + } + } + } }; return manager; })(); @@ -318,4 +314,4 @@ return manager; })(); -// vim: set fdm=marker sw=4 ts=4 et: +// vim:fdm=marker sw=4 ts=4 et: |