新しくなった twittering-mode.el と、考えていること

Emacs Advent Calendar jp: 2009 の参加記事です。昨日は id:kiwanami さんでした。

この記事では、最近かかりきりになっている twittering-mode.el について、この数ヶ月の新機能、そして開発中の機能について紹介したいと思います。

twittering-mode.el とは

Emacs から Twitter をするためのメジャーモードです。最近ようやくまともな Web ページができました Twittering-mode

http://twmode.sourceforge.net/images/screen-user.png

さいきんの twittering-mode.el

最近になって、twittering-mode.elの開発が加速しています。GitHubでのコミット頻度を表す Impact グラフにもそれが如実に表れています。

http://hayamin.com/upload/impact.png.png

開発のかなり大くの部分は、はやみず自身によるものというよりも開発に参加してくださっている人達からのパッチで成り立っています。最近は twittering-mode.el をいじっている時間のほとんどはパッチの取り込みのような気がします。

twittering-mode の新機能

Lists 表示

つい最近Twitterに実装されたLists機能に対応しています。Emacstwitterクライアントでlistsに対応しているのは twittering-mode だけなのでないかと思います。

ReTweet

簡単にReTweetを投稿できるようになっています。また、ReTweetのフォーマットはカスタマイズできるようになっています。デフォルトでは 「RT: ほげほげ (via @hayamiz)」という形式になっていますが、「RT @hayamiz: ほげほげ」にして使っています。

署名

なんと言うのが正しいのかわかりませんが、発言の最後に署名みたいなものをつける機能が実装されています。時々イベント告知に使われていたりしますね。

ハッシュタグ

署名とまとめてしまおうかなー、と思っていますが、ハッシュタグを設定して自動的に発言の末尾に挿入する機能が実装されています。イベントの実況のときなんかに便利かもしれません。

ダイレクトメッセージ

ダイレクトメッセージの送信ができるようになりました。表示のほうは未実装ですが、ちかいうちに実装するつもりです(そんなに手間はかからないはず)。

HTTPS対応

この間のTwitterDNS汚染をうけて、HTTPSでの通信に対応しました。突貫工事で作りあげたので、まだ多少不具合が残っています。curlコマンドをバックエンドに利用しているので、curlが使える環境であれば利用可能です。Windows向けcurlバイナリはtwittering-modeに同梱予定です。

TinyURL

URLにポイントをあわせてF4キーを押すだけで、tinyurlで置き換えてくれる機能が実装れました。個人的にはかなり便利だとおもっています。

その他、各種バグフィックスやコードの改善など、様々な改良が重ねられています。

実装予定の機能

より柔軟でわかりやすいTimeline表示

twittering-modeの抱える最大の問題は、多機能化によるインターフェースの複雑化です。各種タイムラインの表示もその1つで、今は各タイムラインごとに関数が分かれていたり、キー割り当てがあったりとあまり整理されていません。

これをまとめるための変更が、timeline-specブランチで行われています。

検索

twittering-modeの現在のタイムラインで欠けているものが、検索結果の表示です。この実装が search-modeブランチで行われています。

ポップアップバッファからの投稿

twittering-modeは当初からミニバッファでつぶやきを入力して投稿、というスタイルだったのですが、これだと色々と不便だという声もあり、最近は自分もそう感じていました。これを改善するため、つぶやきの入力用バッファが開いて、そこで入力できるよう実装が pop-up-bufferブランチ で進められています。

vimライクなコマンドインターフェース

今のtwittering-modeは、多くの機能のキーバインドがありますが、正直言って全て覚えて使うのはつらいです。そこで、"コマンド名"と"処理内容"をペアにして、コマンド名を入力するというインターフェースがvim-like-commandブランチで提案されています。

具体的には、: (コロン) キーを押すとコマンド名の入力モードになり、そこでコマンドを指定して実行する、というものです(たとえば favorite コマンドでお気に入りに追加など)。vi/vim っぽいですね。

マイナーモード

twittering-modeのバッファにいなくともつぶやきの投稿ができるよう、マイナーモードがtw-minor-modeブランチで実装されています。

おわりに

ここ最近のtwittering-modeの動向をまとめる意味でこのエントリを書きはじめたのですが、思っていたよりも沢山の機能変更があることに驚きました。はやみずがしばらく開発に参加していなかった時期もあるので、再び開発するようになってしばらくたった今でも、「こんな機能があったのかー」と驚くことがあります。そのあたりの隠れた機能、使いにくい機能を整理して、今年の年末あたりにリリースしたいなあと思っています。