私はemacs c/C++開発環境でcedetとsemanticを実験していましたが、1つの細部を除いてそれにはかなり満足しています。私はプロジェクトを作成し、ファイルをインクルードディレクトリと一緒に私のプロジェクトのルートディレクトリを与えるためにede-cpp-root-project
を使用セマンティック、cedetソースファイルの構文解析を強制する方法
は、以下のような存在:
(ede-cpp-root-project "My Project"
:name "My Project"
:file "/path/to/rootdir/AFILE"
:include-path '(
"/include2"
"/include1"
)
)
これは私が簡単にsemantic-ia-fast-jump
と関数の宣言にジャンプすることができますしかし、私はそれらの関数の定義に惑わされません。だから、ヘッダファイルを扱うだけで、ソースファイルは完全に無視されるようです。関数の宣言に続き、semantic-analyze-proto-impl-toggle
をトリガしても、適切な実装が見つからないことがわかります。
関数の実装があるソースファイルを手動で開くと、それだけが意味論によって解析され、上記のすべての関数が機能します。
は、だから私の質問は短いの手動でディレクトリの下にすべてのソースファイルの解析を強制する他の方法がある:spp-files
引数を経由してede-cpp-root-project
でそれらを含め、手動で私のプロジェクトのルートディレクトリの下に含まれるすべてのソースファイルを開いたり、ありますか?
ありがとうございます!
bovinate'が私の状況にどのように役立つか '表示されていないと、このソリューションは良いようだが、Emacsはしませんタグデータベースをセッション間で保存します。何か不足していますか? – jarvisteve
ねえ、それは変です。それらは.emacsディレクトリ内の.semanticdbというディレクトリに保存する必要があります – Lefteris
私のファイルリストが非常に長くて、emacsが停止して一見、それ以上の進歩を見せないという問題がありました。私は次のディレクトリに移動する前に(semanticdb-save-all-db)の呼び出しを追加して解決します。このようにして、キャッシュは継続的に更新されます。多分それが助けになるでしょう。通常、セマンティックはemacsを終了するときだけ保存します。 – RealityMonster