0

私は、自分のスタジオ独自のスクリプト言語用にVisualStudio2008の基本的なLanguageService拡張機能を作成しました。これは完全に正常に機能し、スクリプト定義と呼び出しを追跡してgoto定義機能を可能にする基本的なシンボルテーブルを実装しました。

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

たぶん私は問題について間違った方法で進んでいて、誰かがファイルをLanguageServiceによって解析させるためのより良い方法に私を向けることができます。

よろしく、コリン

4

1 に答える 1

0

調べてみると、Visual Studio が新しいソースを必要とする理由は、それらの内部リストを保持しているためであり、それらはエディターが保持するテキスト ファイルへのビューのようなものであることがわかりました。

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

だから私は間違った方法で問題に取り組んでいたと思います。奇妙に思えますが、ファイルをトリガーしてソース リストに表示することはできません。

興味深いことに、Microsoft のサポート フォーラムでこの質問をしたところ、質問に答えるにはサービスとサポート プランを購入する必要があるとのことでした。

于 2011-02-15T23:03:59.343 に答える