Я пытаюсь добавить подсветку синтаксиса для настраиваемого типа контента на основе текста, например.Как заставить рекламодателя работать с настраиваемым типом контента
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"
, то вызывающий конструктор получает вызов.
Итак, вопрос в том, как можно сопоставить настраиваемый тип контента с расширением файла?
Второе примечание, используя FileExtensionToContentTypeDefintion
не вариант, так как это не позволяет много возможностей ..
Спасибо за помощь :)
Да, я рассматриваю эту реализацию прямо сейчас. Кажется довольно сложным. Поэтому я предполагаю, что мне также придется реализовать экземпляр этого, но, возможно, без буфера элиции. Что вы подразумеваете, по умолчанию, реализация btw? Шаблон из Visual Studio? Я не планирую иметь несколько типов контента, поэтому, возможно, эта реализация по умолчанию может быть полезна. – FailedDev
Если вы не связываете расширение своего файла с настраиваемой фабрикой редакторов, Visual Studio будет использовать собственную внутреннюю реализацию фабрики редакторов. Эта реализация назначает типы контента несколькими различными способами, одним из которых является упомянутый вами атрибут. –
Но, конечно, использование реализации по умолчанию не позволяет человеку создавать панели навигации и т. Д. Или добавлять в редактор новые расширения файлов. – FailedDev