mabulog

このブログは、mabuの平凡な日常を淡々と描く物です。 過度な期待はしないでください。 あと、部屋は明るくして、 モニターから3メートルは離れて見やがってください。

vim-refで複数ファイルタイプを扱う方法

お知らせ Infomation

vim-ref以外にもtaglist等、複数ファイルタイプに対応していないpluginが多数存在して、
開発に影響が出てしまったので、御蔵行きにしました。
ただ、考え方的には複数ファイルタイプは間違っていないため、
少しづつ解決して行きたいと思います。

背景 Background

最近、neosnippet.vimを愛用するようになったのですが、スニペットの種類を確認していた所言語に対してあるのは想定通りだったのですが、フレームワークに対してもスニペットが用意されていました。これは各フレームワークにおけるコーディング規約準拠する上でとっても便利なので即取り入れて見ようと思いました。
ただここで問題となるのが、フレームワークのfiletypeに変更する事でフレームワークよりも遥かに情報量の多い言語サポートの恩恵が失われるのではないかと思い、"vim filetype 複数"でググッたりしました。すると、id:h1mesukeさんの記事がとても参考になりました。 そこで、下記のような感じで書くことで複数ファイルタイプを持たせる事が出来ました。

multi filetype setting e.g. Laravel + PHP

使ってみた所、vim-refが正常に機能していない事がわかりました。情報を漁ってみましたが、検索ワードが悪いためか特に情報が見つかりませんでした。そこでヘルプを参考にNGのような感じに設定しましたが、うまく動きませんでした。原因の見当がつかず、ソースを追っかけてある程度おさえる事が出来ましたので備忘録を残します。

vim-ref setting

重要なポイント

ソースを読む事でfiletypeの登録周りだけですが動きがなんとなくわかりました。(雰囲気理解力) ちなみに、phpのfiletypeはphpmanual.vim内でphpmanual.vimを利用する設定がされていました。

"vim-ref/autoload/ref.vim: L773

 let list = split(globpath(&runtimepath, 'autoload/ref/*.vim'), "\n")