首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在VS Code中,如何为不支持的语言创建自定义“转到定义”功能?

在VS Code中,可以通过使用自定义语言服务器(Language Server)为不支持的语言创建自定义“转到定义”功能。自定义语言服务器是一个独立的进程,它理解特定语言的语法和语义,并提供诸如代码补全、语法高亮、代码跳转等功能。

以下是为不支持的语言创建自定义“转到定义”功能的步骤:

  1. 首先,安装VS Code插件"VS Code Language Server",该插件可以帮助你创建自定义语言服务器。插件链接:VS Code Language Server.
  2. 创建一个新的文件夹作为你的语言服务器项目,并进入该文件夹。
  3. 在命令行中使用命令npm init初始化你的项目,并按照提示进行配置。
  4. 安装vscode-languageserver包,该包提供了用于自定义语言服务器的核心功能。使用命令npm install vscode-languageserver进行安装。
  5. 创建一个JavaScript文件,例如server.js,在其中编写你的语言服务器代码。
  6. server.js文件中,导入vscode-languageservervscode-languageserver-textdocument包,并使用它们提供的API来实现“转到定义”功能。
  7. server.js文件中,创建一个语言服务器实例并定义textDocument/definition处理程序。在该处理程序中,解析用户鼠标点击的位置,并返回该位置的定义信息。
  8. 编写其他必要的处理程序,例如initializeshutdown,以及其他支持的功能,如代码补全、悬停提示等。
  9. server.js文件中,使用createServer函数创建一个语言服务器,并启动服务器。
  10. 在VS Code中打开要编辑的文件,然后按下Ctrl + Shift + P打开命令面板,输入“配置语言服务器”并选择“配置语言服务器”。
  11. 在弹出的配置文件中,添加一个新的语言服务器配置,并指定语言服务器的名称和服务器启动命令。例如:
代码语言:txt
复制
"languageserver": {
    "myCustomLanguageServer": {
        "command": "node",
        "args": ["<path-to-your-server.js>"]
    }
}
  1. 保存配置文件,并重启VS Code。

现在,当你打开不支持的语言文件并在代码中点击某个位置时,VS Code将调用你的自定义语言服务器来获取该位置的定义信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

插件机制详述_VSCode插件开发笔记1

一.扩展能力 VS Code插件不适合做UI定制,比如Atomtool-bar VS Code很难实现: ?...UI DOM这一层可能会随着优化频繁变动,VS Code不希望这些优化项受限于插件依赖,所以干脆把UI定制能力限制起来 除UI定制之外,IDE相关功能型特性都是支持扩展基础语法高亮/API提示...,大刀阔斧UI定制是不支持,比如想在左端侧边栏(Activity Bar)加个Icon都是做不到 标题栏上菜单扩展支持自定义icon,但定义方式比较奇怪,例如: "commands": [{...方法签名:基础支持方法签名包含参数说明文档 跳转到定义:基础支持存在多处定义时都展示出来 引用查找:基础支持返回所有引用处具体位置 选中查找高亮:基础支持返回当前文档所有相同引用 方法/变量声明目录...基础支持展示,高级可以添加自定义命令 重命名:基础不支持按引用重命名,高级支持工作空间下跨文件重命名 代码格式化:基础不支持代码格式化,高级支持全文/选中/输入中格式化 五.开发步骤 环境要求 VS Code

2.7K50

TypescriptServerPlugin_VSCode插件开发笔记3

一.需求场景 VS Code能够正确支持JS/TS跳转到定义、补全提示等功能,但仅限于符合Node Module Resolution以及TypeScript Module Resolution规则模块引用.../myModule'; // 支持baseUrl import { localize } from 'vs/nls'; 如果是其它自定义import规则,这些功能都将不可用(无法跳转、没有提示、没有Lint.../my-awesome-module';// 试图跳转到doSomething定义 myModule.doSomething(); 想要跳转到依赖文件定义,必须要做到这2点: “理解”myModule...让Go to definition指向不同引用位置 给字符串字面量形式自定义模板语言提供报错及补全提示,例如Microsoft/typescript-lit-html-plugin 做不到事情包括...相比,TypescriptServerPlugin能够触摸到语法树,这是极大优势,转到定义、Lint检查、补全提示等语义相关场景尤为适用 当然,TypescriptServerPlugin也并非完美

1.1K30
  • VS Code网页版来了!无需任何安装,如丝般顺滑!

    VS Code 带入浏览器 直到今天,当你转到 https://vscode.dev 时,你将看到一个完全浏览器运行轻量级 VS Code本地机器上打开一个文件夹并开始编码。...使用 Tree-sitter 语法树,我们能够为流行语言 C/C++、C#、Java、PHP、Rust 和 Go)提供额外体验,例如大纲 / 转到符号和符号搜索。...扩展 大多数 UI 自定义扩展(例如主题、键映射和代码段)都可以 vscode.dev 中使用,你甚至可以通过 Settings Sync 浏览器、桌面和 GitHub 代码空间之间启用漫游。...例如,CodeTour 扩展允许你创建代码库指导性演练,而 WikiLens 扩展将 VS Code 和你存储库变成一个强大笔记工具(具有双向链接)。...如果您是主题作者,你甚至可以 README 创建一个徽章,让用户直接从 Marketplace 试用你主题( VS Code for the Web 用户指南中了解更多信息:https://code.visualstudio.com

    13.1K20

    每个开发人员都应该知道VS Code入门技巧

    这里有一些每个开发人员都应该知道关于Visual Studio Code (VS Code)技巧: 1、自定义键盘快捷键:VS Code允许您根据自己喜好自定义键盘快捷键。...还可以使用Alt + Click不同位置创建多个游标。 3、智能感知和自动完成:VS Code提供了智能感知代码完成功能。...还可以自定义智能感知设置以增强其功能。 4、代码导航:要快速浏览代码库,请使用以下快捷方式: Ctrl + P:快速打开按名称跳转到文件。...Ctrl + Shift + O:转到符号导航到当前文件符号。 Ctrl + Shift + F:文件搜索以查找整个项目中文本。...输入代码段前缀后按Ctrl +空格插入相应代码块。 10、任务运行器和调试:VS Code为各种语言提供了任务运行和调试支持。使用.vscode/tasks创建自定义任务。json文件。

    23810

    微软发布 vscode.dev,把 VS Code 带入浏览器!

    VS Code 带入浏览器 直到今天,当你转到 https://vscode.dev 时,你将看到一个完全浏览器运行轻量级 VS Code本地机器上打开一个文件夹并开始编码。...使用Tree-sitter语法树,我们能够为流行语言 C/C++、C#、Java、PHP、Rust 和 Go)提供额外体验,例如大纲/转到符号和符号搜索。...扩展 大多数 UI 自定义扩展(例如主题、键映射和代码段)都可以 vscode.dev 中使用,你甚至可以通过 Settings Sync 浏览器、桌面和 GitHub 代码空间之间启用漫游。...例如,CodeTour扩展允许你创建代码库指导性演练,而WikiLens扩展将 VS Code 和你存储库变成一个强大笔记工具(具有双向链接)。...如果您是主题作者,你甚至可以 README 创建一个徽章,让用户直接从 Marketplace 试用你主题( VS Code for the Web 用户指南中了解更多信息:https://code.visualstudio.com

    2.2K30

    资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

    它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...语言服务功能 Pyright提供以下语言服务功能: 悬停工具提示显示类型信息 符号定义链接 在编辑期间智能优先级排队“实时”反馈 文档 命令行选项 配置 入门 Pyright内部 使用限制 Pyright...它还提供类型检查功能。 Pyright提供了与之重复功能,但包括了一些独特功能可配置性更高、命令行执行和更好性能。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

    84520

    资源 | Github项目推荐 | 微软开源Python静态类型检查器Pyright

    它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...语言服务功能 Pyright提供以下语言服务功能: 悬停工具提示显示类型信息 符号定义链接 在编辑期间智能优先级排队“实时”反馈 文档 命令行选项 配置 入门 Pyright内部 使用限制 Pyright...它还提供类型检查功能。 Pyright提供了与之重复功能,但包括了一些独特功能可配置性更高、命令行执行和更好性能。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

    83020

    Github项目推荐 | 微软最新开源Python静态类型检查器Pyright

    它可以配置为使用Typeshed类型存根另一个(可能是更新或修改过)副本。 当然,它也适用于作为项目一部分自定义类型存根文件。...语言服务功能 Pyright提供以下语言服务功能: 悬停工具提示显示类型信息 符号定义链接 在编辑期间智能优先级排队“实时”反馈 文档 命令行选项 配置 入门 Pyright内部 使用限制 Pyright...它还提供类型检查功能。 Pyright提供了与之重复功能,但包括了一些独特功能可配置性更高、命令行执行和更好性能。...,请注意以下事项: 安装nodejs 克隆源主目录打开终端窗口 执行 npm run install:all 来安装依赖项 执行 npm run build 构建VS Code扩展包,请注意以下事项...如需VS Code安装,请转到扩展面板,然后从菜单中选择“从VSIX安装...”,然后选择对应包即可。

    1K20

    Vs Code推荐安装插件

    前言:   Visual Studio Code是一个轻量级但功能强大源代码编辑器,轻量级指的是下载下来Vs Code其实就是一个简单编辑器,强大指的是支持多种语言环境插件拓展,也正是因为这种支持插件式安装环境开发让...Vs Code成为了开发语言霸主,让同时支持开发多种语言成为了可能。...流程图神器-Drawio: 拓展名称:Drawio 拓展描述:Vs Code预览绘图图文件。...Vs Code运行C#拓展: 拓展名称:C# 拓展描述:.NET Core轻量级开发工具。强大C#编辑支持,包括语法突出显示,IntelliSense,转到定义,查找所有引用等。...Vs Code Chrome调试器: 拓展名称:Debugger for Chrome 拓展描述:Chrome浏览器或任何其他支持Chrome Debugger协议目标调试JavaScript代码

    2.2K30

    VSCode跳转到定义内部实现_VSCode插件开发笔记4

    编辑体验:跳转到定义、智能提示、自动补全、查找引用、变量重命名等等 这些统统没有,都是由插件提供,对JS支持也是这样 一.内置插件 VS Code内置插件,与JavaScript有关只有一个vscode...见Json Schema with VS Code 一堆配置文件显然提供不了跳转定义之类强力功能,因此,还有两个TypeScript相关插件: typescript-basics:类似于javascript...插件,提供TS语言语法支持 typescript-language-features:提供语言特性相关高级支持,跳转、查找声明/引用、补全提示、outline/breadcrumb等涉及代码语义高级功能...其中typescript-language-features是VS Code能够理解JS/TS(以及JSX/TSX)代码语义,并支持跳转到定义功能关键: "activationEvents": [.../src ├── commands.ts # TS相关自定义command ├── extension.ts # 插件入口 ├── features # 各种语言特性,高亮、折叠、跳转到定义

    4.7K30

    Visual Studio Code(CS code)你们都在用吗?或许你们需要看一下这篇博文

    正文 一.日常安利 VS code VS vode特点: 开源,免费; 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass/xml) 调试功能强大...2.Debugger for Chrome 从VS Code调试Google Chrome运行JavaScript代码。...12.filesize 状态栏显示当前文件大小,点击后还可以看到详细创建、修改时间 ? 13.Import Cost 对引入计算大小 ?...伟大C#编辑支持,包括语法突出显示,智能感知,转到定义,查找所有引用等。 调试支持.NET Core(CoreCLR)。注意:不支持单声道调试。桌面CLR调试支持有限。...Java Extension Pack 它是一组流行扩展,可以帮助Visual Studio Code编写,测试和调试Java应用程序。查看VS CodeJava以开始使用。 ?

    3K20

    前端开发技术(vscode怎么下载)

    都不用我安利VS code,大家就会乖乖去用,无数个大言不惭攻城狮,都被VS code比德芙还丝滑强大功能所折服。    我是来给大家安利插件,想做个比较全面的插件集合给大家。...VS vode特点: 开源,免费; 自定义配置 集成git 智能提示强大 支持各种文件格式(html/jade/css/less/sass/xml) 调试功能强大 各种方便快捷键 强大插件扩展    ...Debugger for Chrome 从VS Code调试Google Chrome运行JavaScript代码。...用于Google Chrome浏览器或支持Chrome DevTools协议其他目标调试JavaScript代码VS Code扩展。...语言相关 C# 适用于.NET Core轻量级开发工具。 伟大C#编辑支持,包括语法突出显示,智能感知,转到定义,查找所有引用等。 调试支持.NET Core(CoreCLR)。

    2.4K20

    最新正版激活码 IDEA2022激活码注册码 免费使用 激活Code

    JetBrains每个IDE功能都实现得很好,无论是代码分析,重构,导航,运行/调试,运行测试,添加新文件,git集成还是上下文功能添加程序包引用等)。JetBrains一切都更好一些。...两者都是可以插入新功能编码平台,只是jetbrains锁定了一些自定义功能,并通过插件捆绑销售其IDE,从而提供了更好核心体验。...Intellij企业环境具有巨大优势,企业环境,一致性,统一性和易于更换团队成员至为重要,VSCode是高度可定制代码编辑器,适合不同用例,团队每个成员都希望尽可能地自定义工作经验。...Intellij是一个抽象语法树上运行结构化编辑器。创建LSP难点是提供诸如重构和导航支持之类功能,而这些正是IntelliJ为其语言插件提供功能。...我们撰写大量Go语言Microsoft团队,IntelliJ / GoLand开发人员和VS Code开发人员之间有50/50分配比例,并且有更多人从VS Code转向IntelliJ,反之亦然

    1.8K20

    Visual Studio Code 1.75发布

    树视图搜索历史 - 树视图中快速运行搜索历时。 更好终端链接检测 - 检测包含空格、括号、行和列格式链接。 新 Git 命令 - VS Code 暂存更改和删除远程标签。...VS Code AI 工具 - 通过 GitHub Copilot 支持 AI 代码完成。 配置文件 配置文件功能现已在 VS Code 普遍可用。...可以针对不同开发场景(例如数据科学、文档编写)或针对多种编程语言(例如 Python 或 Java)自定义 VS Code。 使用设置自定义配置文件打开文件夹。...辅助功能 差异导航改进 转到下一个 / 上一个更改现在有音频提示来指示是否插入、删除或修改了一行。此外,更改行会被选中,以便屏幕阅读器可以阅读。...从自定义布局命令恢复默认值 通过触发命令或使用自定义标题栏布局控件来使用自定义布局命令时,您可以使用布局控件右上角恢复箭头按钮恢复默认值。

    2.9K30

    10 款 VS Code 插件神器,第 7 款超级实用!

    本文来介绍 10 款高效 VS Code 插件,总有一款能够惊艳到你。 前言 我此前写过一篇有关 VS Code 文章:我最终还是选择了 VS code!... VS Code ,Extensions->搜索 “CodeIf” 即可完成安装。 使用时只需要选中变量名,然后右键选择 CodeIf 就可以跳转到网页,显示候选命名。...使用 Pycharm、IDEA 时可以直接查看本地历史代码,然后轻松恢复之前某个版本。但是,VS Code 默认是不支持 local history ,所以,仅凭 Ctrl+z 撤销操作是不行。...但是,配合 vscode-icons 这款插件就不同了,它具有以下特性, •自定义图标•自动检测项目•自定义配置 它不仅能够给文件夹、文件添加上舒适图标,而且可以自动检测项目,根据项目不同功能配上不同图标...除此之外,它还支持用户自定义符号。 这款神器彻底解决了我我开发痛点。 8. Better Align 安装次数:10万+ 整洁代码,是一个优秀程序员必须要做到

    1.3K20

    VS Code settings.json 10 个高(装)阶(杯)配置!

    ,可以自定义快捷键来再次显示这块空间; 如何设置快捷键:keybindings 我们可以用 Ctrl+B 来隐藏/显示文件资源管理器,用 Ctrl+Alt+B 来隐藏/显示活动栏; 虽然,你也可以命令面板...Ctrl+Shift+P 搜索,不过使用快捷键就更有装杯效果~ 活动栏隐藏状态下,我们也可以通过快捷键跳转到不同工作空间,比如 Ctrl+Shift+E(跳转到文件资源管理器)、Ctrl+Shift...自更新绝对路径 VS Code 最佳功能之一是它文件导入很友善,使用绝对路径,例如:@/components/Button 比 ../.....虽然它目前尚未内置 VS Code ,但可作为免费 VS Code 扩展进行安装使用,还可以配置附加设置增强它功能! 10....需要进行这个配置,关闭后,单击将在新选项卡打开文件。问题解决了~ 将配置用 Settings Sync 进行同步,去哪都能个性化、自定义!酷

    1.1K30

    .NET周刊【3月第1期 2024-03-03】

    界面开发可使用自定义用户控件提高界面统一性与便利性,分页和附件显示控件。...文章回顾了 Winform 自定义控件使用,展示了如何创建、添加属性和事件处理,以及动态添加控件到布局。同时介绍了当用户控件数量过多可能会引起性能问题。...文章首先解释了路由及其 WebMVC 作用,然后通过示例代码详细展示了如何使用特性配置方法来自定义控制器和操作方法路由映射,并提到可以需要时动态改变路由。...【Openxml】如何为 OpenXml 元素创建超链接 https://www.cnblogs.com/ryzen/p/18047555 OpenXml 超链接功能主要有跳转页面(转到 PPT 指定页面...ASP.NET Core Docker Init 与 VSVS Code 扩展比较 http://thedatafarm.com/docker/docker-init-for-asp-net-core-compared-to-vs-or-vs-code-extensions

    19210

    VSCode10个巧妙技巧

    但是,其中一些有用功能并不明显,即使对于经验丰富用户也是如此。而且,随着 VS Code 每次新版本发布,更多便捷功能被推出——通常会保持水线以下。...VS Code 语音扩展操作。光标附近麦克风图标表示扩展程序正在监听输入。 VS Code 文档中使用多个光标 VS Code 编辑文档一种相当神奇方法是定义多个光标。...使用配置文件管理工作流 VS Code 可以处理任意数量不同语言和文件类型。但您可能不希望为每个语言和文件类型使用相同自定义设置。...Python 项目需要与 Java 或 C# 项目不同自定义设置。为此,VS Code 允许您使用 配置文件(Profile) 将各种自定义设置组合在一起,并将其保存在一个通用名称下。...您可以通过配置文件修改和保存设置、键盘快捷键、用户代码段和任务以及扩展,并且可以与队友共享您配置文件以保持工作流同步。 配置文件可用于存储和共享针对每个工作流或语言自定义设置组。

    14110

    VSCode添加多选项卡选择功能

    对于源代码管理,添加了用于创建键盘快捷键工作台命令。其中包括专注于下一个或上一个源代码输入字段或专注于存储库下一个或上一个资源组功能。...当设置 消除位置更改抖动 启用时,开发人员可以使用 信号选项延迟 设置来自定义各种辅助功能信号去抖时间。这是一项实验性功能。...当命令缺少键绑定分配时,开发人员现在可以从辅助功能帮助对话框对其进行配置。 VS Code 1.89 弃用画布渲染器现在已完全删除。...不支持 WebGL2 机器上,终端将使用基于 DOM 渲染器。...要试用此功能,开发人员必须安装最新版本 Copilot Chat。 两个用于扩展创作新 API,聊天参与者 API 和 语言模型 API,使 VS Code 扩展能够参与聊天并访问语言模型。

    22610
    领券