LaunchPatch
LaunchPatch 是一个轻量的 VS Code 扩展,用顶部输入框快速批量修改 .vscode/launch.json 中已标记启动配置的字段。
远程调试地址、端口或其他环境参数发生变化时,不必逐个编辑多份启动配置。运行一次命令,依次确认需要修改的字段即可。LaunchPatch 与调试器无关,可用于 Java、Node.js、Python、Go 以及其他使用 launch.json 的调试配置。
功能特点
- 批量更新同一组启动配置,未标记的配置不会被修改
- 修改字段完全可配置,默认修改
hostName,也可以加入 port 等任意顶层字段
- 输入框预填并全选当前值,直接输入即可替换
- 直接按 Enter 保留当前字段,继续处理下一个字段
- 点击输入框外部或按 Esc 立即取消,本次不写入文件
- 自动保留字符串、数字、布尔值和 JSON 值的类型
- 原生支持带注释和尾随逗号的
launch.json
- 更新成功后保持安静,不弹出完成提示
快速开始
1. 标记启动配置
在需要由 LaunchPatch 管理的配置中设置标准字段 presentation.group:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"request": "attach",
"name": "Service A",
"presentation": {
"group": "launch-patch"
},
"hostName": "127.0.0.1",
"port": 5005
},
{
"type": "node",
"request": "attach",
"name": "Service B",
"presentation": {
"group": "launch-patch"
},
"address": "127.0.0.1",
"port": 9229
}
]
}
presentation 是 VS Code 启动配置的标准展示字段;LaunchPatch 仅使用其中的 group 识别目标配置,不会向 launch.json 写入调试器无法识别的自定义字段。
2. 运行命令
打开命令面板(macOS:Cmd+Shift+P,Windows/Linux:Ctrl+Shift+P),运行:
LaunchPatch: 批量更新启动配置
输入框会显示匹配配置中该字段的当前值并自动全选:
- 输入新值并按 Enter:批量更新该字段
- 不输入,直接按 Enter:保留该字段并进入下一项
- 按 Esc 或点击其他区域:取消整次操作,不写入文件
如果同一字段在多个配置中的当前值不同,输入框会展示其中一个值并提示“当前值不一致”。只有实际编辑输入框后,该字段才会被统一修改。
配置
默认设置如下:
{
"launchPatch.presentationGroup": "launch-patch",
"launchPatch.keys": ["hostName"]
}
自定义标识
团队可以使用自己的分组名:
{
"launchPatch.presentationGroup": "team-debug"
}
此时 LaunchPatch 只修改包含以下标识的启动配置:
"presentation": {
"group": "team-debug"
}
自定义修改字段
字段会按照数组顺序依次询问。例如批量修改远程地址和端口:
{
"launchPatch.keys": ["hostName", "port"]
}
也可以用于其他调试器字段:
{
"launchPatch.keys": ["address", "port", "timeout"]
}
字段名对应启动配置对象的顶层键。目标配置缺少某个键时,只要你输入了新值,LaunchPatch 就会为它添加该键。
快速打开设置
运行命令后,输入框右侧有一个齿轮按钮。点击后,LaunchPatch 会:
- 在当前项目的
.vscode/settings.json 中补充上述两项设置(已有值不会覆盖)
- 打开该文件并定位到
launchPatch.presentationGroup
找不到匹配配置时,也可以点击警告消息中的“打开配置”。
值类型
LaunchPatch 会参考当前值保留类型:
| 当前值 |
输入示例 |
写入结果 |
| 字符串 |
debug.example.com |
"debug.example.com" |
| 数字 |
5005 |
5005 |
| 布尔值 |
true |
true |
| 对象或数组 |
{"mode":"fast"} |
{"mode":"fast"} |
如果字段原本不存在,输入符合 JSON 语法的数字、布尔值、对象或数组时会按对应类型写入,其他内容按字符串写入。
多根工作区
单根工作区会直接使用当前根目录。多根工作区中,LaunchPatch 优先使用当前编辑器所属目录;无法判断时会显示目录选择框。
从 Launch Host Switcher 迁移
如果使用过旧版,请完成以下替换:
launchHostSwitcher.presentationGroup → launchPatch.presentationGroup
launchHostSwitcher.keys → launchPatch.keys
launch-host-switcher → launch-patch
命令也已更名为 LaunchPatch: 批量更新启动配置。新版只处理新标识或你在 launchPatch.presentationGroup 中明确配置的标识。
开发与调试
npm install
npm test
npm run package
在 VS Code 中打开项目后按 F5,会使用项目内的 .vscode/launch.json 启动 Extension Development Host。
隐私
LaunchPatch 只读取和修改当前工作区内的 .vscode/launch.json 与 .vscode/settings.json,不发送网络请求,也不收集数据。
许可证
本项目使用 MIT License,完整条款见扩展包根目录的 LICENSE 文件。