繁体   English   中英

摩纳哥编辑器自定义语言智能感知

[英]Monaco Editor Custom Defined Language Intellisense

我是摩纳哥编辑的新手。 我正在尝试在我的 Web 应用程序中包含 Monaco 编辑器。 我想知道如何将我定义的自定义语言添加到具有丰富 IntelliSense 和验证功能的 Monaco 编辑器中。 谁可以帮我这个事? 谢谢你。

您可以通过定义自己的自定义CompletionItemProvider来实现这一点。

我建议您查看Completion 提供程序示例以开始使用。

这是带有动态添加的关键字的 CompletionItemProvider 的示例。

 monaco.languages.registerCompletionItemProvider('CustomExpressionLanguage', {
                provideCompletionItems: () => {
                    if (!items || items.length <= 0)
                        return { suggestions: [] };

                    window.varSuggestions = items.map(function (x) {
                        const one = {
                            label: x.Value,
                            kind: monaco.languages.CompletionItemKind.Keyword,
                            insertText: `Col("${x.Key}")`,
                            insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet
                        };
                        return one;
                    });

                    window.pythonSuggestions = window.pythonMathMethods.map((x) => {
                        var item = {
                            label: x.label,
                            kind: monaco.languages.CompletionItemKind.Funcion,
                            insertText: `${x.label}${x.arguments}`,
                            documentation: x.documentation,
                            insertTextRules: monaco.languages.CompletionItemInsertTextRule.InsertAsSnippet
                        };
                        return item;
                    });

                    window.suggestions = window.varSuggestions.concat(window.pythonSuggestions);
                    return { suggestions: window.suggestions };
                }
            });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM