最高のC ++インデクサー?


10

私は最近から切り替えてきたのEclipse CDTSpacemacsC ++層、私の開発環境として。

これまでのところ...すごい!ただし、Eclipseについて私が見逃しているものの1つは、そのインデクサーです。

現時点では、gtagsレイヤーでGNU Globalを使用しています。gtagsの問題は、インデクサーではなくタグ付けシステムであることです。

例:

setクラスで呼び出された関数の参照を検索するFieldと、コードベースに165の参照が返されますが、そのうちの1つだけが実際にはField::set

setCDTでへの参照を検索すると、1つの結果が返されます。

emacsで使用できるより良いインデックス作成ソリューションはありますか?

オンラインで検索すると、3つのclangベースのインデクサーがリストされているこのページが見つかりました。

質問:

  • これらのいずれかは、より良いインデックス作成エクスペリエンスを提供しますか?
  • どちらを使用するかについての提案はありますか?
  • リストされていないより良い代替案はありますか?

注意:

clang-completeコード補完にも使用していますが、非常に遅いことがわかりました。異常に遅い。(これを体験するのは私だけではありません)インデックス作成ソリューションで同じ問題が発生した場合、機能しません。


私がC ++プロジェクトで作業しているわけではありませんが、emacs.zeef.comのC ++セクションに役立つコンテンツが見つかるかもしれません。
ReneFroger 2016年

clang-indexer最近開発されていないことに気づきました、そして著者自身はそれが「ラフ」であると言います-それで私は他の二つにそれを試さないでしょう
スティーブ・ロリマー

rtagsリストされている3つの中で最も人気があるようです
Steve Lorimer

1
厳密に言えば、この質問はEmacsと関係がありますか?
PythonNut 2016年

1
現在述べられているように、この質問は非常に主観的であり、主に意見に基づく回答をもたらす可能性があります。質問をより具体的にするために投稿を編集してください。
ダン

回答:


4

私は、過去1〜2年間積極的に使用しているrtagsについてのみ伝えることができます。

rtagsは期待どおりに動作します。コンパイラベースであり、正しいコードナビゲーションを提供します。emacsユーザーとして過去10年間私が探していたもの。

セットアップは少し難しいかもしれません。セットアップの一部を自動的に行うcmake-ideを確認することをお勧めします。 https://github.com/atilaneves/cmake-ide

このブログの投稿は、https://vxlabs.com/2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based-にも役立ち ます。 rtags /

私自身の設定を確認(または使用)することもできます:https : //github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el cmake-の組み合わせを使用ide(プロジェクト検出)、irony(コード補完用)、rtags(コードナビゲーション用)。各モード間で一部の機能が重複するため、これは単純化できると確信していますが、結果は、最新のIDEに期待するレベルです。

rtagsはコードのリファクタリング機能も提供しますが、かなり制限されています(ほとんどの場合、名前の変更)。


1
この回答が承認されてから2年になりますが、まだrtagsを使用していますか?セットアップに関するドキュメントが変更されたのか、それとも簡単なセットアップが導入されたのか知りたいです。何か情報はありますか?setup / configファイルを共有できますか?
A_P

@A_Pなんらかの理由で、現在あなたのコメントしか表示されていません。私はまだrtagsを使用しています。cmake-ideページと私の設定(私の回答のリンク)をもう一度確認してください。ほとんどのインストールも自動化しました。チェック:github.com/jardon-u/dotfiles/blob/master/install.sh(ただし、emacsのバージョンは最新ではない可能性があります。これを更新してみます)
log0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.