ラーメン大陸の力を受け継ぎし、チャーハン諸島の優れた文明である「地震なう」機能が、Azureaへ漏洩しました。此れは世界のバランスにとって由々しき事態であると共に、我々は此の革命を喜び、声明文を此所に掲載します。
冗談です。
Commit 651f2760912a00be5806b61aa1d402ff14f1802e to ne-sachirou/AzureaVim - GitHub https://github.com/ne-sachirou/AzureaVim/commit/651f2760912a00be5806b61aa1d402ff14f1802e
用量
二通りの導入部が有ります。単独のAzurea拡張として使う方法と、AzureaVimのpluginとして使う方法です。
単独で使う場合は、通常のAzureaScriptと同じく、Scriptsフォルダへearthquake.jsを置く丈です。AzureaStartup.jsでの自動更新にも対応します。
https://github.com/ne-sachirou/AzureaVim/blob/master/src/plugins/earthquake.js
azvm pluginとする場合、少し手間が掛かります(上級者向け)。buildする必要が有ります。手順は以下。
- リポジトリをdownload
- feature.jsに追記
- 自動更新を対処(更新用コメントを削除或いは改変)
- rakeでclobber(azvm.bat clobber)
- rakeでAzureaVim.jsをビルド(azvm.bat)
- Scriptsへ設置(いつも通り)
先ずAzureaVimのリポジトリをダウンロードします。git clone (forkしちゃったら好いかも)しても、ダウンロードボタンから落としても構いません。
次に、build/feature.jsに、以下の項目を追加して下さい。
"plugins/earthquake": ["AzureaVim"],
ま、既存の行を読んで、似た様に書いて下さいね。
azvm.rakeも改変しましょう。AzureaVim.jsが自動更新されては困りますからね。まぁ、あれですよお。冒頭のMETA['scriptUrl']を消すとかfork先リポジトリに書き換えるとか…。
もう後わかりますよね…。あ"ー。
用法
使用法は、二つのフェーズから成ります。
- 地震なうの投稿文(デフォルトでは「地震なう」)を設定
- 投稿
ま、そのまんまですね。当然の機能ですね。
投稿文の設定は、コンテキストメニュー(右クリックメニュー)の、Extends -> 地震なう設定、から行います。
投稿は、キーボードショートカットです。Ctrl+↓で投稿。チャーハン諸島風ですから。
AzureaVim pluginとして組み込んだ場合、更にコマンドが加わります。コードにコメントで書いてあるから、解りますよね。
製法
最新は[ https://github.com/ne-sachirou/AzureaVim/blob/master/src/plugins/earthquake.js ]
以下2011-03-10時点でのスナップショット。
// ==AzureaScript== // @name 地震なう // @author http://c4se.sakura.ne.jp/profile/ne.html // @date 2011-03-10 // @scriptUrl https://github.com/ne-sachirou/AzureaVim/raw/master/src/plugins/ // @license public domain // ==/AzureaScript== try { AzureaUtil.mixin(AzureaVim.commands_list, { earthquake: 'earthquake', e: 'earthquake', jisin: 'earthquake', 'え': 'earthquake', 'じしん': 'earthquake' }); } catch (err) {} // :earthquake [set option2] // チャーハン諸島風地震なう機能です。Ctrl+↓で、設定した文を、時刻付きでpostします。 // AzureaVim pluginとして丈でなく、単独のAzureaScriptとして使えます(其の場合コマンド機能は使用出来ません)。 // option1にsetを入れた場合、option2で投稿文を設定します。 (function() { var _message = System.settings.getValue('user.Earthquake', 'Message'); if (_message === '') { System.settings.setValue('user.Earthquake', 'Message', '地震なう'); _message = '地震なう'; } function _getMessage() { // @return String: return _message; } function _setMessage(text) { // @param String: // @return String: text = text || _message; System.settings.setValue('user.Earthquake', 'Message', text); _message = text; return text; } function setEarthquakeMessage() { // @return String: var text = System.inputBox('地震なう投稿文', _getMessage(), false); _setMessage(text); return text; } function postEarthquakeMessage() { // @return String: var text = _getMessage() + ' ' + (new Date()).toString(); TwitterService.status.update(text, 0); return text; } System.addContextMenuHandler('地震なう設定', 0, setEarthquakeMessage); System.addKeyBindingHandler(0x28, // VK_DOWN ↓ 2, // Ctrl postEarthquakeMessage); try { AzureaVim.prototype.earthquake = function() { // @return String: var result; switch (this.command[1]) { case 'set': result = _setMessage(this.command[2]); break; default: result = postEarthquakeMessage(); break; } return result; } } catch (err) {} })();
今後
- reply.jsも、ショートカット用とazvm pluginで分かれてるけど、同じ様に統合しようかなぁ。
あぁAzureaScriptのvimlike、Winmoで誰が使うんだって思ったらPC版で使う人いるのかー、今更 \(>ヮ<)/
あー うん はい