我正在尝试使用 Monaco 编辑器在 javascript 编辑器中提供智能感知/代码完成。代码必须是有效的 JavaScript,而不是打字稿。
给定一些用户输入的脚本是这样的:
function onMyEvent(event)
{
event.someProperty
}
我想在事件参数上提供代码完成,这是一个我有 t.ds 的打字稿类,可以在运行时推断。
理想情况下,我只想告诉 Monaco 的类型event
是SomeEventClass
,然后让它完成剩下的工作。即使这意味着向脚本添加类型提示。但我看不出该怎么做。我尝试在用户脚本中使用 JSDoc 语法和各种组合,但它看起来像是阻止了 FTB,请参阅:
https ://github.com/Microsoft/monaco-editor/issues/203
和
为 VSCode/Monaco Intellisence 添加 JavaScript 类型提示
但是声明这个函数对编辑来说似乎没有任何意义。声明一个新类肯定有效,我只是不知道如何告诉 Monacoevent
在那个函数中是一个特定的类型。
我可以看到 registerCompletionItemProvider API,但这并没有为您提供任何声明项目的上下文等,也不允许我自动使用我想要的 d.ts 文件。