読者です 読者をやめる 読者になる 読者になる

$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

関西Emacs 08に行って来ました

関西Emacsに行って来ました。僕は軽くEmacs上でテストするっていう話をしました。あといろいろ気になってたことの相談とか、便利な拡張とかを教えてもらったりしました。

Emacsでテストする

https://github.com/shibayu36/emacs/blob/master/emacs.d/inits/20-edit-mode-perl.el#L107..L141

 これはもともとmechairoiさんが作ったものを少しずつ変えていったものです。

 run-perl-testをすると普通にファイル全体のテストを実行してくれます。ただテストが多くなってくると実行に時間がかかるので変更に関係のある部分だけテストしたくなってくると思います。それでrun-perl-method-testというのを使って、現在カーソルがある部分のTest::Classのメソッドのみテストするというのをやっています。やっていることは正規表現でメソッド名を取得して、TEST_METHOD環境変数付きで実行しているだけです。

 ちなみにsubtestの場合だったら、Test::Flatten使ってたらTEST_FILTERで同じことが出来ますね。他の言語でも同じように作れると思います。

 ただ、こういうのあるプロジェクト単位で環境変数とか少しずつ変えたいし、こういうので定義するの微妙だよねという話をhitode君としてました。なんかテスト実行サーバみたいなのがいてそいつがプロジェクトごとの設定とか読んでて、ファイル名と行番号をわたしてあげると実行してくれる、みたいなのがいいのかなという話をしてました。そういう感じなのがあったら便利そうですね。

highlight

 今回話を聞いていて、auto-highlight-symbolというのを初めて知りました。自動で現在のカーソル位置のsymbolをハイライトしてくれるやつです。変数を自動的にハイライトする - tkr's blog こういう感じです。

 ただこれも便利なんだけど、なんかコードリーディングやってる時にいくつかのsymbolをハイライトしておきながら読みたいなーという時もあって、これとこれとこれをハイライトしておいて!ってやっておきたいみたいなのが欲しいことがありました。

 調べてみるとhighlight-symbolという、まさにそれというのがあったので、導入しました。以下のようにハイライトした状態でコード読むみたいなことが出来ます。色は適当に調整できます。
f:id:shiba_yu36:20131026220511p:plain

edebug

 あとデバッグのやり方とかも教えてもらいました。emacsのデバッガ結構簡単に使えるみたいでした。便利そう。

Emacs Lispのソースコードデバッガ edebug を使う - (rubikitch loves (Emacs Ruby CUI Books))

その他

あとはこの辺りのワードが気になったので、また調べてみようと思います。

  • sdict
  • emmet
  • cask
  • which-func

あとなぜか懇親会でdockerの話をしていて面白そうだったので、今度やってみようという気持ちになりました。

まとめ

 今回いろいろ収穫あったのでEmacs勉強会良かったなと思っています。Emacs温泉ハッカソンとかあったら行きたいので、なんか企画されると嬉しいかもしれない。