CodeMirror Duplicate Finder 默认跳过注释和字符串,需设 "duplicate-finder.includeStrings": true 并重启 VSCode 才检测注释重复;但因注释格式、缩进、变量差异易漏检,建议改用关键词搜索、人工比对或文档模板优化。

CodeMirror Duplicate Finder 默认跳过注释和字符串内容,所以你用它查重复时根本看不到注释里的相似块——这不是 bug,是默认行为。想让它检测注释里的重复代码,必须手动改配置。
duplicate-finder.includeStrings 设为 true 才能扫注释
该插件默认只比对可执行代码行,注释(//、/* */、 )和模板字符串内部全被忽略。要让注释参与比对,得在 VSCode 设置里加这一条:
"duplicate-finder.includeStrings": true
- 改完后需重启 VSCode 或重新触发
Find Duplicates in Workspace,否则不生效 - 开启后性能略降,尤其项目里有大段 JSDoc 或 HTML 注释时,扫描会变慢
- 它不会区分“注释是否在代码块内”,只要文本连续、满足行数和相似度,就归为一组
注释格式不统一会导致漏检
即使开了 includeStrings,以下情况仍可能查不到重复:
- 一个文件用
// TODO: init config,另一个用/* TODO: init config */→ 注释符号不同,文本结构差异大,相似度掉到阈值下 - 注释缩进不一致:4 空格 vs 2 空格 vs Tab → 插件按原始字符比对,不算“语义相同”
- 注释里混了变量名或路径:
// fetch from /api/usersvs// fetch from /api/posts→ 一个字符不同,相似度骤降
真正要查注释重复,建议换策略
靠插件硬扫注释效率低、误报多。更靠谱的做法是:
- 用
Ctrl+Shift+F搜共性关键词,比如TODO、FIXME、@deprecated,再人工比对上下文 - 对大段说明性注释,复制两段到 diffchecker.com 直接比对,跳过缩进/空格干扰
- 如果注释重复高频出现在同一类函数里(如所有 API 调用前都有一段固定说明),不如抽成文档模板,用代码片段(
snippets)统一插入
注释不是代码,但重复的注释往往暴露的是重复的逻辑或缺失的设计抽象——插件扫不到的地方,恰恰是最该停下来问问“为什么这里又写一遍”的地方。











