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(-)
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('<