VS Code 中的可点击链接 API

Dan*_* K. 6 visual-studio-code vscode-extensions

是否有 API 可以创建可点击的链接?VS Code 突出显示 URL 并允许按住 Ctrl 键单击它们,并且打字稿集成允许在导入时按住 Ctrl 键单击文件路径,因此该功能就在那里。

激活参考没有提到任何有关文本操作/突出显示的内容。

Wos*_*osi 4

您在问题中混合了两种不同的东西:

  1. 链接检测这是一种内置机制,可识别任何文本文件中的链接。它为链接添加下划线并提供 CTRL+单击命令以在浏览器中打开该链接。
  2. 定义提供程序通常由外部语言服务器使用语言服务器协议来实现。当您在 TypeScript 文件中执行 CTRL+Click 导入语句时,这些事情将在后台发生
    • VSCode 将查找当前语言的定义提供程序(在本例中为 TypeScript)
    • VSCode 将调用provideDefinition以单击的光标位置作为参数的定义提供程序对象
    • 定义提供者已经了解了编程语言的知识。因此它将能够解析源代码并找出单击的标识符的定义位置。它将返回相应的文件位置。
    • VSCode 跳转到该文件位置

这是一个简化的示例。事实上,只要您按住 CTRL 并将鼠标悬停在标识符上,所有这些都会发生。当定义提供者以有效位置响应时,标识符将显示为带下划线。

查看扩展示例以了解如何创建您自己的定义提供程序。

  • 哪个示例使用“DefinitionProvider”?我搜索了该存储库,但在示例存储库中找不到任何对此或“provideDefinition”的引用。 (2认同)