2011-01-13 10 views
0

スタジオ独自のスクリプト言語用にVisual Studio 2008の基本的なLanguageService拡張機能を作成しました。それは完璧に動作し、スクリプト定義と呼び出しを追跡してgoto定義機能を可能にする基本的なシンボルテーブルを実装しました。ファイルパスからIVsTextLinesを取得する

私が遭遇した問題は、現在のアクティブなビューを解析する方法しか知りません。ユーザーがファイルに定義されたスクリプトの定義に移動できるように、ソリューション全体の内容をスキャンしたいと思います。彼らはまだ開いていると解析している。私はソリューション内のすべてのファイルのリストを生成する方法を理解しましたが、今度は新しいMicrosoft.VisualStudio.Packageを作成する必要があります。 ソースには、Microsoft.VisualStudio.TextManager.Interopが必要です。 IVsTextLinesと私は私が持っているファイルに基づいて新しいものを作る方法を知らない。

多分私は問題について間違ったやり方をしているかもしれませんし、誰かがLanguageServiceによってファイルを解析させるより良い方法を教えてくれるかもしれません。

よろしく、 コリン

答えて

0

チャンスをうかがっ私は、Visual Studioは、新しいソースを必要とする理由は、それが彼らの内部リストを維持することだ、と彼らは、エディタで開催されたテキストファイルにビューに似ていることがわかりました。

私は結論として、クローズされたファイルはIVsTextLinesを必要とせず、ソースファイルのVS内部リストに入力する必要がありません。私が直接操作していないからです。シンボルの表とそれに対応するTextSpanを作成します。だから代わりに、文字列を取り込んで、ParseRequestからテキストを取得する代わりにASTを作成し、記録する必要がある特定のタイプのシンボルだけを心配するパーサ用の新しいAPIを作成しました。私はそれをBackgroundWorkerにプッシュしました。

私は間違った方法で問題を起こしていたと思います。それは変わったように思えますが、ファイルをソースリストに開くようにすることはできません。

興味深いことに私は、マイクロソフトのサポートフォーラムでこの質問をしました。彼らは私の質問に答えるためにサービスとサポート計画を購入しなければならないと私にアドバイスしました。

関連する問題