Classifier
,ErrorTagger
,SignatureHelp
およびTextCompletion
クラスを作成しました。 VSが発見するMEF構成要素であるプロバイダーによってすべて作成されます。VSIXエディタ言語拡張コンポーネント間の状態を共有
質問は、これらのコンポーネント間でC#オブジェクトを共有して状態を共有し、各コンポーネントから同じテキストを再解析するのを保存できるようにすることです。これどうやってするの?編集中のファイルごとにこの状態が必要です。
VSはプロバイダーを検出し、それを使用してコンポーネントを作成します。しかし、どうやってそれらの間で状態を入れたり共有したりできますか?私はグローバルシングルトンを使用しましたが、複数のファイルがVSで編集されている場合、それらはすべて同じシングルトンを共有しますが、編集中のファイルごとに異なるインスタンスが必要です。
'IServiceProvider'はこのトリックを行う必要があります。しかし、すべてが新しいVSで同じappdomainで実行されると、静的変数もちょうどうまくいくはずです... – leppie