VS Code如何创建字符串本地化宏?自定义Code Action实现需求咨询
在VS Code中实现字符串本地化自定义宏方案
完全可以实现你的需求,不需要复杂的Code Action,用VS Code的宏扩展+自定义命令就能搞定,具体步骤如下:
1. 安装必要扩展
- 安装
geddski.macros扩展,用来组合多步骤命令; - 可选安装
multi-command扩展,处理复杂逻辑更灵活。
2. 配置宏逻辑(settings.json)
打开settings.json(快捷键Ctrl+,后点击右上角打开JSON),添加以下宏定义,对应你的三个需求:
"macros": { "localizeSelectedString": [ // 1. 弹出输入框获取本地化键名 { "command": "inputBox", "args": { "prompt": "输入本地化键名", "value": "", "then": [ // 2. 在指定本地化文件写入键值对 { "command": "workbench.action.files.openFile", "args": "/path/to/your/localization/file.js" // 替换为你的目标文件路径 }, { "command": "editor.action.insertSnippet", "args": { "snippet": "${input:text} = '${selectedText}'\n" } }, // 3. 替换当前选中内容为固定格式代码 { "command": "workbench.action.focusActiveEditorGroup" }, { "command": "editor.action.replaceSelection", "args": "(some_fixed_code)${input:text}(some_other_fixed_code)" } ] } } ] }
注意:如果目标文件不存在,先手动创建;若需要自动定位到文件末尾插入,可添加
cursorEnd命令调整光标位置。
3. 绑定触发方式
绑定快捷键
打开keybindings.json(快捷键Ctrl+K Ctrl+S后点击右上角打开JSON),添加:
{ "key": "ctrl+shift+l", // 自定义快捷键,可按需修改 "command": "macros.localizeSelectedString", "when": "editorTextFocus && editorHasSelection" }
添加右键菜单
在settings.json中继续添加以下配置,把命令加入右键菜单:
"commands": [ { "command": "macros.localizeSelectedString", "title": "本地化选中字符串" } ], "menus": { "editor/context": [ { "command": "macros.localizeSelectedString", "when": "editorTextFocus && editorHasSelection", "group": "modification@5" // 控制菜单位置,数字越小越靠前 } ] }
进阶优化
如果需要更复杂的逻辑(比如自动创建目标文件、格式化代码、去重键名),可以编写自定义JavaScript命令:
- 在
.vscode目录下创建localize-command.js; - 用
vscode.commands.registerCommand编写逻辑,调用VS Code API完成文件操作、输入框交互; - 通过
Command Runner扩展执行该脚本,或者打包成简易扩展。
内容的提问来源于stack exchange,提问作者Iago París
相关产品推荐
相关产品推荐

