我正在尝试在使用 Monaco 编辑器的 JavaScript 编辑器中提供智能提示/代码补全功能。代码需要是有效的 JavaScript 代码,而不是 TypeScript。
给定一些用户输入的脚本,比如:
我希望能够在事件参数上提供代码自动完成,该参数是我拥有t.ds的typescript类,并且可以在运行时推断出来。
理想情况下,我只想告诉Monaco
我可以看到registerCompletionItemProvider API,但这不会给你任何声明该项的上下文,并且也无法自动使用我想要的d.ts文件。
给定一些用户输入的脚本,比如:
function onMyEvent(event)
{
event.someProperty
}
我希望能够在事件参数上提供代码自动完成,该参数是我拥有t.ds的typescript类,并且可以在运行时推断出来。
理想情况下,我只想告诉Monaco
event
的类型是 SomeEventClass
,然后让它自己处理。即使这意味着在脚本中添加类型提示。但是我不知道如何做到这一点。我尝试使用JSDoc语法和用户脚本中的各种组合,但看起来被FTB阻止了,请参阅:
https://github.com/Microsoft/monaco-editor/issues/203
以及
Adding JavaScript type hints for VSCode/Monaco Intellisence
我还尝试注入动态d.ts,如下所示:
https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-configure-javascript-defaults
但声明函数似乎对编辑器没有任何意义。声明新类肯定有效,我只是不知道如何告诉Monaco该函数中的event
是特定类型。我可以看到registerCompletionItemProvider API,但这不会给你任何声明该项的上下文,并且也无法自动使用我想要的d.ts文件。