如何从语言服务器提供方法参数信息?

How do I provide method parameter info from a Language Server?

我正在尝试为一种语言的 visual studio 代码实现一个语言服务器,该语言的方法调用类似于 JavaScript(方法名称加上括号内的参数)。

我想在用户键入方法和括号后根据光标在括号内的位置提供参数信息(名称和类型)。例如,在 vscode 中使用 Typescript 编码时,如果我输入:

Math.pow(

我得到一个显示方法签名和第一个参数名称的工具提示,并以粗体显示:

然后当我输入第一个参数并输入逗号时,工具提示会提供有关第二个参数的详细信息:

我能够找到一种方法来提供方法名称的自动完成,但不是上面描述的参数行为。是否有关于如何从 Visual Studio 代码中的语言服务器扩展提示该工具提示的示例或教程?

我在 the official php extension source code 中找到了一个示例。我只需要实现一个 SignatureHelpProvider。