テキストに基づくカスタム コンテンツ タイプの構文強調表示を追加しようとしています。
static class RTextContentType
{
public const string ContentTypeName = Constants.CONTENT_TYPE;
[Export, Name(ContentTypeName), BaseDefinition("text")]
internal static ContentTypeDefinition ContentTypeDefinition = null; // set via MEF
}
次に、分類子プロバイダーは次のように宣言されます。
[Export(typeof(IClassifierProvider)), ContentType(Constants.CONTENT_TYPE)]
class RTextClassifierProvider : IClassifierProvider
{
...
}
問題は、プロバイダーのコンストラクターが、指定した拡張機能に対して呼び出されないことです。ここで、エディタ ファクトリを提供し、ファイル拡張子がファクトリに関連付けられていることに注意してください。関連するすべてのファイルのデバッグを通じて、ファクトリが初期化されていることがわかります。
コンテンツ タイプを"text"
コンストラクタに変更すると、呼び出されます。
問題は、カスタム コンテンツ タイプをファイル拡張子にどのようにマッピングできるかということです。
2 番目の注意、FileExtensionToContentTypeDefintionの使用
これは多くの機能を許可しないため、オプションではありません..
助けてくれてありがとう :)