Когда я создаю провайдера предметов завершения в Монако для Markdown, я не могу создать предложения для текста между фигурными скобками {}
т.е. { typing in here won't launch the suggestions widget }
Я получаю, что фигурные скобки зарезервированы ключевые слова в Markdown и автоматически закрываются в Монако по умолчанию. Даже если автоматическое закрытие отключено, автоматическое заполнение фигурных скобок с соответствующей конечной скобкой не сработает.
Есть ли возможность сделать это? Или мне придется создать новый язык, который по сути является копией Markdown, в которой фигурные скобки не регистрируются в виде скобок?
Вот фрагмент кода редактора Monaco, показывающий эту проблему
monaco.languages.registerCompletionItemProvider('markdown', {
provideCompletionItems: function() {
return {
suggestions: [
{
label: "random_number",
insertText: "random_number"
},
{
label: "now",
insertText: "now"
},
{
label: "today",
insertText: "today"
},
]
};
}
});
monaco.editor.create(document.getElementById("container"), {
value: "# hello.\n{autocomplete doesn't work between braces: }\nbut it works outside: ",
language: "markdown"
});
Edit
Немного больше информации: возможно, причина, по которой предложения не запускаются, заключается в том, что Markdown обрабатывает что-либо между фигурными скобками {} как токен и окрашивает его.
https://github.com/microsoft/monaco-languages/blob/618f2cff2d8e72f04fe9d63085a0c5118b80e8a0/src/markdown/markdown.ts#L143
Не ясно, почему это необходимо.