Repository navigation
1.7.0
面向用户的文案改为英文
- settings 注释、Preferences 菜单、命令面板、补全类型标签、状态栏、诊断面板、引擎诊断弹窗、控制台日志全部英文
display_language默认改为en;zh/both仍可要中文诊断翻译与中文补全说明- 内置数据库补齐英文说明:255 条通用 + 64 条按容器区分,覆盖率检查为 0 缺漏、0 悬空 key
- 诊断与补全注释同时携带中英两种文本,语言在渲染时选定,切换语言不再作废编译器结果
设置读写改用 Sublime 的设置 API
- 四个
ca_set_*命令不再整体 decode/encodeUser/CppAssistant.sublime-settings(那种写法会把用户自己写的注释丢掉) - 改为
load_settings()/set()/save_settings();实测用户文件里的//注释和无关键都能存活 - 删除
add_on_change监听以及只为它存在的两个缓存重置函数,设置一律按需读取 - 缓存按所依赖的设置建 key:编译器查找按
compiler_path、clangd 补全缓存加cxx_standard(此前改compiler_path会连同.gch一起继续用旧编译器)
hover / 签名提示 / 补全改为异步
- 三者的 clangd 请求移到工作线程,只有成品 popup 回到 UI 线程;UI 线程不再有最长 0.5s 的等待
- 结果落地前做 generation 校验:鼠标已移开或又打了一个字,过期结果直接丢弃
clangd_completion_wait_ms默认 30 改为 0:永不阻塞,首弹窗为内置数据库结果,clangd 返回后自动刷新(想让 clangd 结果进首弹窗可自行调高)cancel_all()收窄为只取消textDocument/completion,不再顺手取消在飞的 hover / signatureHelp 请求
顺手修掉的问题
- clangd 诊断模式下把
translate_message()返回的(en, zh)元组当成字符串渲染,消息显示成元组 fatal error被计入 warning- 5 处
cxx_standard回退值写成c++17,与出厂默认c++14不一致
验证
Sublime Text 4215(插件宿主 Python 3.3.7)+ 真实 clangd 与 g++:30 项黑盒检查通过;
hover 与 signatureHelp 实测运行在 Thread-N (work) 工作线程,触发侧仍是 MainThread。
更新方式
仓库克隆用户:Data/Packages/CppAssistant 里 git pull 后重启 Sublime Text。
Package Control 用户:等频道 PR 合入后 Upgrade Package 即可拿到 1.7.0。