Vim 㨠ctags ã§ Scala ã®é¢æ°ä¸è¦§ã tagbar ã使ã£ã¦è¡¨ç¤ºãã
ctags ã使ã£ã¦ã¿ã°ãã¡ã¤ã«ã使ããã¨ã
å®ç¾©<->å©ç¨ç®æã¨ã¸ã£ã³ãã§ãã¦ä¾¿å©ã§ãããã
âãããªãã¨ãããããã
ããã Scala ã Vim ã§æ¸ãã¦ããç¶æ³ã§ããããã¨æãã¾ãã
ã¾ã㯠ctags ã®è¨å®
ctags ãã®ã¾ã¾ã§ã¯ Scala ã®æ¸ãæ¹ããããã¾ããã®ã§ã
~/.ctags
ã«æ£è¦è¡¨ç¾ã§ Scala ã®è¡¨è¨ãã¿ã¼ã³ã追å ãã¾ãã
ããä¸è¨ãã¡ã¤ã«ããªãå ´åã¯ãã¡ã¤ã«ã使ãã¦å
容ã追å ãã¦ãã ããã
ãã®æ¹ã® gist ã§å
容ã¯ã»ã¼ OK ãªã¯ãã§ãã
ctags file â Gist : https://gist.github.com/1277336
Scala ã®å ´åãå®ç¾©ãã¿ã¼ã³ã®åã« lazy ãªã©è²ã
ã¤ãã®ã§ä¸ã® gist ã§ã¯ç¨æãã¦ããã¾ãã
ä¸è¦ãªãã®ãããã¾ãã®ã§æ°ã«ãªãæ¹ã¯ä¿®æ£ãã¦ãã ããã
ãªãã ctags ã¯æ°ãããã®(-R ã®ä½¿ãããã®ã»Exuberant Ctags)ã使ã£ã¦ãã ãããã
ç¹ã« Mac ã«æåããå
¥ã£ã¦ãã ctags ã¯å¤ãã®ã§æ³¨æã§ãã
ããã§ ctags ã Scala ç¨ã®ã¿ã°ãã¡ã¤ã«ãä½ã£ã¦ãããããã«ãªãã¾ããã®ã§ã
試ãã« scalaz ã®ã¿ã°ãä½ã£ã¦ã¿ã¾ãããã
cd hogehoge/scalaz/ ctags -R .
ãã¡ãã¨ã¿ã°ãã¡ã¤ã«ãã§ããå ´åã
ã³ãã³ããå®è¡ãããã£ã¬ã¯ããªã« tags ã¨ããååã®ãã¡ã¤ã«ãã§ãã¦ãã¾ãã
tagbar
以ä¸ã®ä½æ¥ã§ Vim ãå©ç¨ã㦠Scala ã®ã½ã¼ã¹ãéãã¨ã¿ã°ã¸ã£ã³ããªã©ã®æ©è½ã使ãã¾ããã
ã©ãããªãã¿ã°(ããã±ã¼ã¸ãã¯ã©ã¹ãã¡ã½ãã)ã®ä¸è¦§ã表示ããããã®ã§ãã
Scala 以å¤ã«ãã¿ã°ä¸è¦§è¡¨ç¤ºã« taglist.vim ãå°ãããã£ã¦ä½¿ã£ã¦ãã¾ãããã
tagbar ã«å
¥ããªããã¦ã¿ã¾ããã
majutsushi/tagbar - GitHub : https://github.com/majutsushi/tagbar
ã¿ã°ã®ç¨®é¡ã«å¿ãã¦æãããã¿ãå¯è½ã§ãã¬ã¤ã§ãã
tagbar æ¨æºã§ã¯ Scala ã®ã¿ã°ã«å¯¾å¿ãã¦ãã¾ããã®ã§ Scala ç¨ã®è¨å®ã追å ãã¾ãã
ãã¡ãã®èª¬æã«ããããã«ã
Support for additional filetypes - GitHub :
https://github.com/majutsushi/tagbar/wiki/Support-for-additional-filetypes
.vimrc 㸠Scala ç¨ã®è¨å®ã追å ãã¾ãã
ctags ã®å ´æãæç¤ºçã«æå®ããã«ã¯
let g:tagbar_ctags_bin = '/usr/local/bin/ctags'
ã¨ãã¦ããã¾ãã
Mac 㨠Win ã§ ctags ã®å ´æãç°ãªãå ´åã
if has("mac") let g:tagbar_ctags_bin = '/hogehoge/ctags' endif if has("win32") let g:tagbar_ctags_bin = 'C:\hogehoge\ctags.exe' endif
ã®ããã«åãåããã¨è¯ãã§ããããã
宿
以ä¸ã§å®æã§ãã
unite-outline ã
nnoremap <silent> <leader>o :TagbarToggle<CR>
ãè¨å®ãã¦ãã¾ãã
䏿¹ unite-outline ã¯
nnoremap <silent> <C-o> :<C-u>Unite -auto-preview outline<CR>
ã¨ãã¦ãã¬ãã¥ã¼è¡¨ç¤ºããã¦ããã®ã§ãªãã¨ãªãæ°åã§ä½¿ãåãã¦ãã¾ãã