LocalizeTip2 for VS Code
针对 C# 的本地化补全、悬停、行尾提示和 F12 配置跳转。与 Rider 版使用同一套数据格式和默认触发器。
开发与安装
cd vscode
npm ci
npm test
npm run prepare:development
code --extensionDevelopmentPath="$PWD/.release" <你的Unity项目目录>
打开 Unity 项目中的 .cs 文件。设置页搜索 localizeTip;行尾提示默认开启,可通过 LocalizeTip: Toggle Inline Hints 或编辑器右键菜单切换。已有的手动关闭设置会保留。VS Code 的 editor.inlayHints.enabled 也需允许显示提示。
数据来源
- 默认字符串表:
Assets/Config/string_cn.csv,旧表 Assets/Config/old/string_cn.csv。
- 默认消息表:
Assets/Config/message.csv,旧表 Assets/Config/old/message.csv。
- 每个工作区独立加载,按配置顺序优先采用当前表,缺失键才从旧表补充。
- 字符串表支持 CSV 的
#id,text 或 id,value 标题行及旧 YAML _Id / _Zh_CN。
- 消息表用
#id,^remark,$value 字段连接字符串表;引用不存在的字符串不会进入补全。
- 修改数据后执行
LocalizeTip: Reload Data,不自动监听文件。
- 数字调用优先使用消息映射;字符串数组调用保留原始字符串键。
MessageDao.Inst.GetText(60117);
TipsHelper.PopupSceneTips(condition ? 350102 : 70008);
StringDao.Inst.GetString(new[] { "message60117" });
自定义触发器通过 localizeTip.triggerKeywords 设置。数字消息调用支持直接整数字面量和条件表达式的数字分支;不会求值变量或方法调用。字符串调用识别第一个字符串参数,按文本匹配,不依赖 C# 语义服务。
F12 从数字消息跳至 message.csv 对应行,从字符串键跳至字符串表对应行。悬停文本以纯文本转义显示。
打包
本次经用户授权确定初始版本为 0.1.0,运行 npm run package 即可生成 localizetip2-0.1.0.vsix。当前插件 ID 为 wxb.localizetip2,与旧插件 wxb.LocalizeTip 区分。后续发布系统可用 LOCALIZETIP_RELEASE_VERSION 覆盖版本。可在 VS Code 中选择“从 VSIX 安装”;此命令不发布到 Marketplace。
已在真实 VS Code 1.129.1 扩展宿主中自动验证加载、悬停、F12 配置跳转、行尾提示、数字补全和重载。复测时先运行 npm run prepare:development,使用 VS Code 的 --extensionDevelopmentPath 指向 .release,--extensionTestsPath 指向 test/host.cjs,工作区指向 test/fixture。应使用独立的 --user-data-dir 和 --extensions-dir。验证成功后结果写入 out/host-result.json。
实现使用 VS Code 扩展 API,清单遵循 Extension Manifest。