Похоже, что существует класс MarkdownEngine, который управляет загрузкой плагинов в соответствии с конфигурацией, и, хотя кажется, что нет способа обратиться к экземпляру MarkdownIt, здесь определен метод рендеринга
https://github.com/Microsoft/vscode/blob/fa5306d67bb934c42d206fb3c7e028dff00d530f/extensions/markdown-language-features/src/markdownEngine.ts#L96
Итак, на первый взгляд все, что вам нужно сделать, это импортировать MarkdownEngine и использовать этот метод. Однако в настоящее время это не поддерживается. Я зарегистрировал запрос функции .
Авторы не хотят показывать MarkdownEngine, но предлагают предоставить метод рендеринга.
Это окончательный ответ, но сейчас это не поможет. Тем временем можно получить ссылку на экземпляр markdownIt
кода VS.
Измените ваше расширение на маскарад в качестве плагина уценки. Обратите внимание, что в документации для добавления плагинов написано
Затем в основной функции активации расширения верните объект с функцией extendedMarkdownIt. Эта функция принимает текущий экземпляр markdown-it и должна возвращать новый экземпляр markdown-it:
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
return {
extendMarkdownIt(md: any) {
return md.use(require('markdown-it-emoji'));
}
};
}
Это ваш шанс захватить рендерер уценки. Измените ваше расширение для представления в качестве плагина уценки
"contributes": {
"markdown.markdownItPlugins": true,
Дайте ему свойство private для хранения ссылки на экземпляр markdownIt. Не пытайтесь набирать его строго, так как это потребует от вас комплектации библиотеки MarkdownIt.
var md: any;
Затем захватите ссылку, поставив ее в конце вашего метода активации.
return { extendMarkdownIt(mdparam: any) { return md = mdparam; } };
Когда конвейер инициализируется, он вызывает предоставленный вами обратный вызов, передающий ссылку на себя. Остальная часть вашего кода может получить его из собственности.
Этот прием зависит от ранней загрузки конвейера рендеринга, независимо от того, используете ли вы панель предварительного просмотра уценки. К счастью, это так.