Subscribed unsubscribe Subscribe Subscribe

ctagsでjsx(ES6 class)の定義にジャンプできるようにする

React を使うにあたって、最近は ES6 classes を使ってJSXを書くようにしているのだけど、Componentを色んなファイルに分けて書いてるとそれぞれの定義に移動するのがつらくなってきた。
そういえば普段PerlRubyを書くときはctags -eでTAGSを作っておいて、Emacs内ではM-x heml-etags-select(helm-command-prefix-key + e にbindされている)を使ってメソッド定義に飛んでいるのだけど、そういえばJSX用にそれが使えてない、というのに気付いた。

適当にググったら https://github.com/jsx/jsx.vim/blob/master/ctags/jsx.conf っていうのが見つかって、まぁこれは違うJSXなのだけど、とりあえず探したいのはclassだし変わらないや、ということでコピペして

--langdef=JSX
--langmap=JSX:.jsx
--regex-JSX=/^[ \t]*([a-z]+[ \t]+)*class[ \t]+([A-Za-z0-9_]+)[ \t]*([^)])/\2/c,class,classes/

というのを~/.ctagsに書いておいたら無事にJSXのComponent定義もTAGSに入って定義ジャンプできるようになった。便利。