特定のファイル拡張子の分類子もエクスポートするVSPackageの形式でVS2013拡張を実装しました。すべてがうまくいきます。唯一気になる点は、IClassifierProviderの実装でGetClassifier()が2回呼び出されることです。これにより、同じ変更を処理する2つの分類器が作成されます。 IClassifierProviderの実装は、以下に示すように簡単です。IClassifierProviderのGetClassifier()が2回呼び出されましたか?
[Export(typeof(IClassifierProvider))]
[ContentType(MyConstants.MyContentType)]
public sealed class MyClassifierProvider : IClassifierProvider
{
public IClassifier GetClassifier(ITextBuffer textBuffer)
{
return new MyClassifier(textBuffer);
}
}
分類に関係しないものはすべて無駄に削除してパッケージを最小限に抑えようとしました。これについてアドバイスをいただければ幸いです。
更新:GetClassifier呼び出しでテキストバッファが異なるのは間違っていました。これに応じてこの記事を更新しました。
私はバッファが違うことに間違っていました。もう一度チェックしました。これで、クラシファイアとバッファのキャッシュを保持することで、この問題を回避できるようになりました。 – edwabr123
Cool。あなたのクラシファイアは、その能力が必要な場合、あなたのクラシファイアが必要なくなったときを知るためのIDisposableを実装することができます。 –