2016-10-14 14 views
1

テンプレート関数の定義ナビゲーションをジャンプすることができませんでした:私は、コマンドGoToDefinitionを入力vimのは、私はこれらのコードが含まれた.hファイルを持っている

template<BLA> 
func1() {} 

// something 

template<BLA> 
func2() { 
    func1(); 
} 

、エラーが登場: "YCM:「例外RuntimeErrorを:することができます定義にジャンプしません。 " 私は何かが恋しいですか?定義を見つける方法は?ところで

、私は私の.vimrcでこれを持っている:

let g:ycm_global_ycm_extra_conf = ' ~/ycm_extra_conf.py' 

**************第二編集***********

を********私はYCMを再インストールし、私は、このコマンドによりYCM用のctagsを試してみました:

ctags -R --fields=+l 

それが動作し、感謝します。

答えて

1

私が最後にチェックしたのは、ソースコードのYCM理解が1つの翻訳単位に限られていることです。関数が定義されている場所が他の翻訳単位にある可能性が高いと判断するのは非常に難しいでしょう。

つまり、現在編集しているものと同じ.cppファイル内にある定義にジャンプしたい場合は、機能するはずです。 したがって、コールサイトからテンプレート関数定義にアクセスしようとすると、関連するコードが含まれているはずです。そうでなければ、YCMが使用しているclangエンジンによるソースコードの不適切な理解、またはclangを使用するように構成されていないYCMに関係する可能性があります。

タグに関して、彼らは仕事をすることができますが、確かにC++では提示されたタグを絞り込む方法が必要になります。それは私がlh-tagsを始めたものです:それは、すべての一致するタグを提示し、それは様々な基準(ファイル名、種類、範囲、...)でそれらをフィルタすることを許可

+0

これらの2つの便利なプラグインありがとう。 –

+0

@FrankWang、私はYCMコードとは関係ありません^^。私は[clang-indexer](https://github.com/LucHermitte/clang_indexer)(あなたが探していることをすることができる)で一度に作業しました。しかし、私は最近それについて何もしていない、私はそれがまだコンパイルされているかどうかも分からない。 –

関連する問題