我已经研究了很长时间了,试图找到一个可行的示例来为我公司内部使用的自定义编程语言在打字稿中实现SignatureHelpProvider
。
到目前为止,我有一个最低限度的工作示例,它为以下方法提供“参数提示”(SignatureHelpProvider结果的另一个名称):
ADD(1, 2)
-对于基本的1级深度方法来说,一切工作都很好。
但是,事情变得非常复杂并且难以管理,例如:
ADD(1, ADD(1, SUBTRACT(100, 5)))
等
在进行一些研究时,有人建议构建AST是管理此类项目的正确方法。但是,我无法在线找到用于使用自定义编程语言实现SignatureHelpProvider
的完整示例。
有人知道用于自定义编程语言的好资源/示例 SignatureHelpProvider
吗?
已经广泛阅读了在线文档,并大量使用了VS Code的内部实现,到目前为止还没有发现。 (https://github.com/Microsoft/monaco-typescript/blob/master/src/languageFeatures.ts#L369和https://microsoft.github.io/monaco-editor/api/interfaces/monaco.languages.signaturehelpprovider.html#providesignaturehelp)