Emacs+Haskellでタグジャンプしたい
どうやらgtagsことGNU globalはHaskellに対応していない
GNU Global has the following features:
supports 5 languages by built-in parser. (definition and reference)
C, Yacc, Java, PHP4 and assembly.
supports 25 languages by Pygments + Universal Ctags plug-in parser. (definition and reference)
Awk, Dos batch, COBOL, C, C++, C#, Erlang, Fortran, Java, JavaScript, Lisp, Lua, Pascal, Perl, PHP, Python, Ruby, Matlab, OCaml, Scheme, Tcl, TeX, Verilog, Vhdl and Vim.
参考: ctagとetagについて #8
hasktags
hasktagsというものでEmacs用にタグを生成できるようだ
-
hasktags: Produces ctags "tags" and etags "TAGS" files for Haskell programs
-
stackでインストール(jsonは依存関係にあったのでインストールしただけ)
$ stack install hasktags json
タグ生成
- ドキュメントの通り以下のコマンドを実行するとCtagとEtagが両方生成され、Emacsから呼び出されるとEtagが返るみたい
$ hasktags --both .
上記でTAGSファイルができているはずなのでEmacs側で「visit-tags-table」を実行してTAGSファイルを読み込めば、「M-.」で関数へジャンプできる。