Skip to content

1.7.0 — 文案英文化 + 设置走 API + hover/签名/补全全异步

Latest

Choose a tag to compare

@chenmoulaile chenmoulaile released this 17 Oct 03:06

1.7.0

面向用户的文案改为英文

  • settings 注释、Preferences 菜单、命令面板、补全类型标签、状态栏、诊断面板、引擎诊断弹窗、控制台日志全部英文
  • display_language 默认改为 en;zh / both 仍可要中文诊断翻译与中文补全说明
  • 内置数据库补齐英文说明:255 条通用 + 64 条按容器区分,覆盖率检查为 0 缺漏、0 悬空 key
  • 诊断与补全注释同时携带中英两种文本,语言在渲染时选定,切换语言不再作废编译器结果

设置读写改用 Sublime 的设置 API

  • 四个 ca_set_* 命令不再整体 decode/encode User/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。