toshia / mikutter-mode

Emacsでmikutterプラグインの編集をサポートするモード

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

なんこれ

これはァ!今をときめく最萌Twitterクライアント、mikutterのプラグインを編集するためのォ!あれだァ!

インストール方法

置けばおkヾ(@⌒ー⌒@)ノ

依存とか推奨とか

  • ruby-mode
  • yasnippet

mikutter 3.1 以降で使用出来ます

使いかた

マイナーモード Mikutter 召喚ッ!(てーん てててんてててーん) このモードはメジャーモードがruby-modeになるファイルを開いた時に、絶対パスの中にmikutterの文字が含まれていたら自動的に召喚される! 更にこのモードが攻撃表示の時には、以下の追加効果が発動するッ!

imenu

mikutter.elが読み込まれていたら、プラグインのイベントフックとかを適当に見つけてimenuに出します。

yasnippet

mikutter用のスニペットです。これでサクサクコードが書けるようになるといいんですけどねぇ。 絶賛追加中です。

任意のコードをmikutter上で実行

M-x mikutter-console と実行してください。ruby-modeとmikutter-modeが有効になった状態で*mikutter-console*というバッファが表示されます。 ここにRubyコードを書いて C-c C-c とタイプすると、現在実行されているmikutterのプロセス上でそのコードが実行されます。また、リージョンで囲まれた領域があれば、その文字列を実行します。 それぞれ結果は、バッファ*mikutter-result* に出力されます。

プラグインリロード

マイナーモードが有効になっていて、起動中のmikutterがこれに添付されているmikutter_modeプラグインをインストールしているとき C-c C-c とタイプすると、 現在のバッファの内容が現在起動中のmikutter上で実行されます。

また、現在のバッファがプラグインだった場合(Plugin.create 云々と書いてある場合)、そのプラグインをアンインストールしてからバッファの内容を実行します。 つまり、プラグインを一度削除して再度修正内容を試したい時に、再起動せずにやり直せるわけです。 (プラグインのデストラクタ的なのがないと困ることもあるでしょう。そういう時は onunload イベントをあれするといいです。)

特定プラグインのみを検証する環境の構築

プラグインを開いたバッファで C-c C-e とタイプすると、

  • ~/.mikutter をコピーして
  • カレントバッファのプラグイン(と、それが依存するプラグイン)のみがインストールされた環境でmikutterを起動

することができます。検証時に不要なプラグインがロードされないので、トライアンドエラーが早くなります。 (この場合でも、依存していなくても core プラグインと、 mikutter-mode プラグインはロードされるので、C-c C-cでコードを実行するとかはできます)

mikutterを実行

こんな設定を書いておけば

(setq mikutter:dir "~/Documents/works/mikutter")

M-x mikutter-boot でmikutterをデバッグモードで起動することができます。出力は*mikutter-log*バッファに表示されます。

mikutter パースペクティブ

e2wm.elを使っている人は、以下のような設定をすると、任意のキーをtypeすれば(例ではC-c m)mikutterパースペクティブが使えます。

(require 'e2wm-mikutter)
(e2wm:add-keymap
  e2wm:pst-minor-mode-keymap
  '(("C-c m" . e2wm:dp-mikutter)))

先の*mikutter-log* や、mikutterコンソールなども並べられています。俺専なので気に入ったらどうぞ。

mikutter_modeプラグインを使うには、dbus-rubyかなんかが要ります。gemとかで調達しましょう。

今後の機能追加予定

  • 起動中のmikutterのプロセス上でpryみたいなことする
  • プラグインの枠だけ作る機能

pull request絶賛受付中!

About

Emacsでmikutterプラグインの編集をサポートするモード


Languages

Language:Emacs Lisp 77.4%Language:YASnippet 17.1%Language:Ruby 5.5%