2008-09-12 16 views
2

私はC++プロジェクト用のIDEとしてEclipseを使用しています。そのシンボルがどこに定義されているのか、関数のパラメータが何であるか教えてください。EclipseのC++インデクサーを調整するには?

ただし、キャッチがあります。Lazy C++も使用します。このツールは、単一のソースファイルを使用し、.hファイルと.cppファイルを生成します。これらの.lzzファイルはヘッダーのように見えますが、このツールはネストされた名前空間を修飾名に結合するような非常に軽い構文上の利点をサポートしています。さらに、ツールに何を配置するかを具体的に(ヘッダーまたはソースファイルに)伝える特別なタグがあります。

$hdr 
#include <iosfwd> 
#include "ProjectA/BaseClass.h" 
$end 

$src 
#include <iostream> 
#include "ProjectB/OtherClass.h" 
$end 

// Forward declarations 
namespace BigScope::ProjectB 
{ 
    class OtherClass; 
} 

namespace BigScope::ProjectA 
{ 
    class MyClass : public ProjectA::BaseClass 
    { 
    void SomeMethod(const ProjectB::OtherClass& Foo) { } 
    } 
} 

ご覧のとおり、それはまだ認識のC++ですが、いくつかのエキストラを持つ:

だから私の典型的なSourceFile.lzzはこのようになります。

何らかの理由で、CDTのインデクサーは何もインデックスを作成したくないようで、何が間違っているのかわかりません。インデクサービューでは空のツリーが表示されますが、15000個以上のシンボルがあり、アクセスできないものはありません。

だからここに私質問です:どのように私は、インデクサー出力にそれがそうするとき、それが失敗した理由、それはやって何についてのいくつかのより多くの情報を作ることができる、と私はGUIからアクセス可能なオプションを持つよりも、それを微調整することができますか?

おかげで、

カール

私が想像

答えて

2

そのの1:

  • Eclipseは、ツリー内の非C++のリソースを表示したくない

    (私が持っていた問題これで)

  • 「環境設定> C/C++>インデクサ>すべてのファイルをインデックスに設定」は有効になっていません。

  • あなたが "フルC/C++インデクサー" ではなく "高速C/C++インデクサー"

+0

ありがとうございます!その最初の点は問題になる可能性があります。私は既に他の2つをやった。 –

+0

私は別のEclipse版(Kepler)を使用しているからかもしれませんが、「すべてのファイルをインデックスする」を有効にする場所を教えてください。 'Preferences> C/C++ General> Indexer'と' Full C/C++ Indexer'オプションを有効にする場所では見つかりませんでした。ありがとうございました – user3085931

1

CDTパーサー/インデクサはそのような奇妙な拡張を認識しませんを使用します。唯一できることは、Paths and Symbolsプロパティページにマクロを定義してパーサーをトリックすることです。空のボディを持つ$hdr$endおよび$srcのマクロを作成してみてください。そうすれば、プリプロセッサはそれらを削除し、パーサはそれらを詰まらせることはありません。