ファイルパスからivstextlinesを取得します
-
10-10-2019 - |
質問
Studioの独自のスクリプト言語用のVisual Studio 2008の基本的な言語サービス拡張機能を作成しました。それは完全に正常に機能し、私は基本的なシンボルテーブルを実装して、スクリプトの定義と呼び出しを追跡して、GOTO定義機能を可能にします。
私が遭遇した問題は、現在のアクティブビューを解析する方法しか知っているということです。また、ユーザーがまだ持っていないファイルで定義されているスクリプトの定義を入手できるように、ソリューション全体のコンテンツをスキャンしたいということです。開いて解析しました。ソリューション内のすべてのファイルのリストを生成する方法を考え出しましたが、新しいMicrosoft.visualStudio.Packageを作成する必要があります。ソース Microsoft.visualStudio.TextManager.Interopが必要です。ivstextlines そして、私が持っているファイルに基づいて新しいものを作成する方法がわかりません。
たぶん私は問題を間違った方法で行っており、誰かが私をより良い方法に向けて、言語サービスによってファイルを解析することができます。
よろしく、コリン
解決
周りを突っ込んでいるのは、Visual Studioが新しいソースを必要とする理由は、それらの内部リストを保持していることであり、編集者が保持しているテキストファイルのビューのようなものであることがわかったことがわかりました。
閉じられているファイルは、IVstextlinesを必要としないか、ソースファイルのVS内部リストに入力する必要はないという結論に達しました。シンボルと対応するテキストスパンの。代わりに、パーサー用の新しいAPIを作成しました。これは、文字列を取り入れて、ParsereQuestからテキストをつかむ代わりにASTを構築し、記録する必要がある特定の種類のシンボルだけを心配しました。その後、これをバックグラウンドワーカーに押し込みました。
ですから、私は間違った方法で問題について進んでいたと思います。奇妙に思えますが、ファイルをソースリストに開くだけでトリガーすることはできません。
興味深いことに、私はこの質問を彼らのサポートフォーラムでマイクロソフトに尋ねました、そして、彼らは私が私の質問に答えるために彼らのためにいくつかのサービスとサポート計画を購入しなければならないことを私にアドバイスしました。