VS Code

直接 Marketplace 装:

Cha — Code Smell Analyzer

或者命令行:

code --install-extension BenignX.vscode-cha

第一次启动

扩展激活时检查 PATH 上有没有 cha 二进制。没有就自动从 GitHub Releases 下载对应平台的 cha,存到扩展全局存储目录。不用手动装 cha

打开 Rust / TypeScript / TSX / Python / Go / C / C++ 文件时自动激活。

配置

主要靠工作区根目录的 .cha.toml(见 配置概览)。VS Code 端基本不用配。

如果需要可以改三个:

设置默认用途
cha.path"cha"改二进制路径——指向开发版或非 PATH 安装
cha.lsp.enabledtrue不卸载扩展,只关 LSP 客户端
cha.disabledPlugins["large_file"]编辑器里要屏蔽的 smell 名。large_file 默认就关着——人都进文件编辑了,再提示"这个文件太长"是噪音。觉得 todo_commenthigh_coupling 等编辑时碍眼也可以加进来;CLI 跑 cha analyze 时这些 smell 仍然会报。

故障排除

  • 看不到诊断 —— 打开 Output 面板下拉选 Cha,下载失败 / 二进制找不到 / LSP 启动错误都在那
  • cha 升级了但扩展用旧版 —— Reload window(命令面板 Developer: Reload Window)。扩展激活时锁定二进制路径
  • 想用别的二进制 —— cha.path 设绝对路径覆盖
  • 公司代理下不下来 —— 手动 装 cha,确保在 PATH 上,再 reload window

你能用的能力

LSP 概览 列的全套,落到 VS Code 里的具体形态:

能力在 VS Code 里看到什么
诊断代码下面的波浪线 + Problems 面板里的条目。严重度跟着 smell 走(Error / Warning / Information)。
Code action出问题的那行旁边出小灯泡,Cmd+.(Mac)或 Ctrl+. 触发。除了 Fowler 风格的重构建议,超长函数还能用内置的 Extract Method
Code lens函数 / 类上方一行小字标注——复杂度、行数、参数数量。
Inlay hint函数名后面跟一截灰色 cx:N cog:N NL(圈复杂度 / 认知复杂度 / 嵌套层数)。觉得碍眼可以在 Editor › Inlay Hints 设置里关掉。
Hover鼠标悬停在函数或类上,弹一份 markdown "评分卡"——指标值、越过哪些阈值。
Document symbolOutline 视图(⌘⇧O),有 finding 的 item 前面带 ⚠ 标记。
Semantic tokens出问题的函数 / 类带 warning modifier,配支持这个 modifier 的主题(比如黄色下划线)效果更明显。
Workspace diagnostics扩展激活时 cha analyze 整个项目,不用挨个打开文件 Problems 也能填满。进度在状态栏。

上面这些都不需要在 VS Code 端额外配什么。

Marketplace

Listing:https://marketplace.visualstudio.com/items?itemName=BenignX.vscode-cha

cha 一起发布——装最新扩展就能用上最新的分析器。