関西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をハイライトしてくれるやつです。http://tkr.hatenablog.com/entry/2013/07/20/142425 こういう感じです。
ただこれも便利なんだけど、なんかコードリーディングやってる時にいくつかのsymbolをハイライトしておきながら読みたいなーという時もあって、これとこれとこれをハイライトしておいて!ってやっておきたいみたいなのが欲しいことがありました。
調べてみるとhighlight-symbolという、まさにそれというのがあったので、導入しました。以下のようにハイライトした状態でコード読むみたいなことが出来ます。色は適当に調整できます。
edebug
あとデバッグのやり方とかも教えてもらいました。emacsのデバッガ結構簡単に使えるみたいでした。便利そう。
Emacs Lispのソースコードデバッガ edebug を使う - http://rubikitch.com/に移転しました
その他
あとはこの辺りのワードが気になったので、また調べてみようと思います。
- sdict
- emmet
- cask
- which-func
あとなぜか懇親会でdockerの話をしていて面白そうだったので、今度やってみようという気持ちになりました。