Shougo/neoinclude.vim

キャッシュが生成されない

Closed this issue · 9 comments

Windows8.1、Kaoriya-vim 64ビットの最新バージョンにて、
以下の設定の場合、phpのインクルード補完のキャッシュが
生成されません。
動的、またはNeoCompleteIncludeMakeCacheを手動で実行しても、
結果は同様となります。

■設定
" -----------------------------------------------------------
" neoinclude
let g:neocomplete#delimiter_patterns = {'php': ['->', '::', '']}
let g:neoinclude#exts = {'php': ['php', 'inc', 'tpl']}
let g:neoinclude#max_processes = 5
let g:neoinclude#delimiters = '/'
let g:neoinclude#paths = "d:/xampp/htdocs/test_goutte/vendor/"


言語はPHP。
vendor以下にある、サードパーティライブラリのメソッドを
インクルード補完の対象として取得することを目的としております。

このような場合、どのようにすればキャッシュを生成できるもので
しょうか。

「キャッシュが生成されない」とはどういう意味ですか?
具体的な症状を教えてください。

ちなみに、neoinclude はキャッシュファイルを生成しません。

let g:neoinclude#paths = "d:/xampp/htdocs/test_goutte/vendor/"

これはだめです。辞書にしてください。

let g:neoinclude#paths = { 'php': 'd:/xampp/htdocs/test_goutte/vendor/' }

「キャッシュが生成されない」とは、
neocomplete.vimのキャッシュディレクトリにinclude_cacheという、
インクルード補完のキャッシュ置き場と思われるディレクトリが生成されるため、
インクルード補完が動くならば、ほかのneocomplete.vimの自動補完と同様に
キャッシュが生成されるはず、という意味に考えておりました。

ですので、neoincludeキャッシュが生成しないということであれば、
私の調査不足となります。申し訳ありません。

また、
let g:neoinclude#paths の設定を辞書に変更しましたが、インクルード補完は動作
いたしませんでした。

まず、そもそも論として私は PHP を使っていないので PHP の動作確認はできていません。
検証環境がないので、動かなくてもサポートはできないでしょう。

「インクルード補完が動作しない」という説明ではさっぱり分からないので、具体的に再現方法を教えてください。

PHPの検証がないことについてはわかりました。

状況を再現するために前述の設定を行い、
以下の手順を実行しました。

■手順
01.
requireでd:/xampp/htdocs/test_goutte/vendor/を読み込んでいる
PHPファイルsample.phpを開く。
vendorディレクトリ以下にはphpunitというテスティングフレームワークの
ライブラリがあり、
phpunitのメソッドが補完されるようにしたい(例としてassertEqualsメソッドを
補完したいものとする)。

02.
01で開いたPHPファイルで以下のように入力する(クラス名はphpunitクラスを
継承したもの)。

TestingClass::assertE*
(*はカーソル位置)

■結果
02でassertEまで入力した時点で、neocomplete.vimの自動補完が実行され、
assertEqualsが補完リストに表示されることを期待したが、
実際には補完リストが表示されず、結果として補完ができない。

上記の状態のことが、『インクルード補完が動作しない』となります。

現在、自分のneoincludeの設定に原因があると疑っておりますが、
ほかに考えられることがあれば、お教えいただければ
と思います。

補完ができない問題ですが、別のissueにありました、
NeoIncludeMakeCacheを実行したら補完ができるようになりました!

こちらの問題報告がわかりづらく、手間を取らせてしまい、申し訳ありません。
お時間を割いていただきありがとうございました。

了解です。とりあえず、手動でキャッシュしないと候補が出ないのは問題点なので、それは別に調べておきます。

調べたところ、キャッシュに時間がかかるのと、保存しないとキャッシュが更新されないだけで後は正常ですね。

私も自分の設定をもう一度調査するようにします。
新しい状況が見つかったときに、また報告させていただきます。