摩纳哥编辑为addExtraLib添加动态类



我一直在尝试在我的angular应用程序中使用monaco编辑器中的intellisense。在为必须动态加载的类的方法添加自动推荐方面,我需要帮助。

例如:我为不同的形状生成类,并且需要使用intellisense生成方法名。矩形类将具有top、left、right等方法。我为多个形状生成Rectangle1、Rectangle2…、Ellipse1、Eliipse2、Ellipse3…等等。如何添加intellisense,以便它建议生成Rectangle1类并在其旁边键入一个点

// validation settings
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false
});
// compiler options
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES6,
allowNonTsExtensions: true
});

monaco.languages.typescript.javascriptDefaults.addExtraLib([
// Trial code
'declare class Rectangle1 {',
'    static ():top',
'    static ():left',
'    static ():right',
'}',
].join('n'));

var jsCode = [
'"use strict";',
'',
"Rectangle1.top = {",
" console.log('Rectangle top');",
"}"
].join('n');

this.editor = monaco.editor.create(this.editorContainer.nativeElement, jsCode);

在摩纳哥游乐场中尝试以下代码

请注意,传递给addExtraLib的内容必须是有效的typescript定义。

monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false
});
// compiler options
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES6,
allowNonTsExtensions: true
});
monaco.languages.typescript.javascriptDefaults.addExtraLib([
'declare class Rectangle1 {',
'    /**',
'     * optional documentation for top function',
'     */',
'    static top()',
'    static left()',
'    static right()',
'}'
].join('n'));
var jsCode = [
'"use strict";',
'',
"Rectangle1.top();"
].join('n');
monaco.editor.create(document.getElementById("container"), {
language: 'javascript',
value: jsCode
});

相关内容

  • 没有找到相关文章

最新更新