From 08a59e79253c83c6d216111c86d829f5057994f1 Mon Sep 17 00:00:00 2001
From: anekos
Date: Sat, 31 Jan 2009 20:42:29 +0000
Subject: 複数のソースを指定できるようにした。 HEAD
で正しく補完されるように修正。 PLUGIN_INFO 追加。
git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@29369 d0d07461-0603-4401-acd4-de1884942a52
---
umihara.js | 148 +++++++++++++++++++++++++++++++++++++++++++++++++------------
1 file changed, 120 insertions(+), 28 deletions(-)
(limited to 'umihara.js')
diff --git a/umihara.js b/umihara.js
index ef3f41b..732945c 100644
--- a/umihara.js
+++ b/umihara.js
@@ -1,19 +1,89 @@
-// ==VimperatorPlugin==
-// @name Kawase
-// @description-ja 外国為替換算
-// @license Creative Commons 2.1 (Attribution + Share Alike)
-// @version 1.0
-// @author anekos (anekos@snca.net)
-// ==/VimperatorPlugin==
-//
-// Usage-ja:
-// 引数書式
-// :kawase[!] <金額> [<ソース> [<ターゲット>]]
-// ソースをターゲットに換算します。
-// "!" 指定でクリップボードにコピーされます。
-//
-// Exsample:
-// :kawase 30000 JPY THB
+/* {{{
+Copyright (c) 2008, anekos.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ 3. The names of the authors may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+
+###################################################################################
+# http://sourceforge.jp/projects/opensource/wiki/licenses%2Fnew_BSD_license #
+# に参考になる日本語訳がありますが、有効なのは上記英文となります。 #
+###################################################################################
+
+}}} */
+
+// PLUGIN_INFO {{{
+let PLUGIN_INFO =
+
{msg}); + } + + let resultBuffer = ''; + function kawase (value, clipboard, from, to) { [from, to] = [from || defaultSource, to || defaultTarget].map(function (it) it.toUpperCase()); + if (from == '-') + from = defaultSource; + if (to == '-') + to = defaultTarget; let url = 'http://quote.yahoo.co.jp/m5?a=' + value + '&s=' + from + '&t=' + to; var req = new XMLHttpRequest(); req.open('GET', url); @@ -78,11 +158,12 @@ '\n ' + to + ': ' + m[3] + '\n rate: ' + m[2] + '\n time: ' + m[1]; - liberator.echo(text); - if (clipboard) - liberator.modules.util.copyToClipboard(text); + echo(text); + if (clipboard) { + resultBuffer += text + '\n'; + util.copyToClipboard(resultBuffer); + } } else { - //liberator.open(url); liberator.echoerr('parse error'); } } @@ -94,24 +175,35 @@ argCount: '+', bang: true, completer: function (context, args) { - let last = context.contextList.slice(-1)[0]; - context.title = ['Country Code', 'Country Name']; - context.advance(last.offset - last.caret); - context.completions = ContryCodes; + if (args.length == 1) { + // TODO - history + } else { + let def = args.length < 3 ? defaultSource + : defaultTarget; + context.title = ['Country Code', 'Country Name']; + context.completions = [['-', def]].concat(ContryCodes); + } } }; - //commands.removeUserCommand('kawase'); commands.addUserCommand( ['kawase'], 'Umihara Kawase Meow', function (args) { - let [value, from, to] = args; - value = eval(value); - kawase(value, args.bang, from, to); + let as = args; + resultBuffer = ''; + liberator.echo('<