如何在 angular 中创建摩纳哥编辑器自定义语言?
How to create Monaco Editor custom language in angular?
我已尝试创建具有自动完成功能 (intellisenses) 的自定义语言。这是行不通的。谁能帮我实现这个目标。
代码
https://stackblitz.com/edit/angular-7-master-emjqsr?file=src/app/app.module.ts
你快到了。
您只需要 return 像 { suggestions: suggestions }
这样的对象而不是 provideCompletionItems
方法中的数组就可以了:
monaco.languages.registerCompletionItemProvider('dummy', {
provideCompletionItems: () => {
var suggestions = [
{
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[=10=]', '} else {', '\t', '}'].join('\n'),
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
documentation: 'If-Else Statement',
},
];
return { suggestions: suggestions };
},
});
我已尝试创建具有自动完成功能 (intellisenses) 的自定义语言。这是行不通的。谁能帮我实现这个目标。
代码
https://stackblitz.com/edit/angular-7-master-emjqsr?file=src/app/app.module.ts
你快到了。
您只需要 return 像 { suggestions: suggestions }
这样的对象而不是 provideCompletionItems
方法中的数组就可以了:
monaco.languages.registerCompletionItemProvider('dummy', {
provideCompletionItems: () => {
var suggestions = [
{
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[=10=]', '} else {', '\t', '}'].join('\n'),
insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet,
documentation: 'If-Else Statement',
},
];
return { suggestions: suggestions };
},
});