【发布时间】:2017-03-27 02:56:34
【问题描述】:
我正在尝试使用 Monaco 编辑器在 javascript 编辑器中提供智能感知/代码完成功能。代码必须是有效的 javascript,而不是 typescript。
给定一些用户输入这样的脚本:
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 文件。
【问题讨论】:
标签: javascript typescript monaco-editor