我一直在尝试在我的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
});