在摩纳哥编辑器中自动补全html(xml)

时间:2019-03-22 14:24:11

标签: html xml monaco-editor

我尝试在摩纳哥编辑器中实现类似于文本的html(或xml)的intellisense类功能。我知道两种方法。第一个:

monaco.languages.registerCompletionItemProvider('myLanguage', {
            provideCompletionItems: () => {
                return { suggestions: monacoSuggestionsXml };
            }

其中monacoSuggestionsXml是像这样的结构数组

[{
    label: 'simpleText',
    kind: monaco.languages.CompletionItemKind.Text,
    insertText: 'simpleText'
}, {
    label: 'testing',
    kind: monaco.languages.CompletionItemKind.Keyword,
    insertText: 'testing(${1:condition})',
    insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet
}, {
    label: 'ifelse',
    kind: monaco.languages.CompletionItemKind.Snippet,
    insertText: ['if (${1:condition}) {','\t$0','} else {','\t','}'].join(\n'),
}]

缺点是,仅当您开始键入或在行首按Ctrl + Space时,此选项才有效。否则为“没有建议”。

另一种方法涉及以下内容:

monaco.languages.typescript.javascriptDefaults.setCompilerOptions(
    {
        allowNonTsExtensions: true
    });
monaco.languages.xml.javascriptDefaults.addExtraLib(myLib, 'myLib');

问题是上述方法适用于javascript语法,但我想选择“ xml”(像下面这样)(我希望使用“ html”):

var mEditor = monaco.editor.create(document.getElementById(editorId), {
    language: 'xml',
});
mEditor.setModel(null);
var model = monaco.editor.createModel('', 'xml', fileName);
mEditor.setModel(model);

0 个答案:

没有答案
相关问题