NoteSmith
该醒目时就醒目的注释:TODO、FIXME 等以颜色显示,整个解决方案中的这些注释汇集在一个窗口里,锚点让你在长文件的各个部分之间跳转。
免费 · Visual Studio 2022 和 2026 · 14 种界面语言 · 无遥测
为什么选择 NoteSmith

一眼就能看到
橙色的 TODO,标签衬着柔和的色块;红色的 FIXME;加粗的重要说明——文件中悬而未决的问题不再淹没在普通注释里。
解决方案中的所有 TODO
注释窗口在后台读取所有源文件,而不只是已打开的文件,并在你保存时随时更新。双击即可打开对应的行。
自定义标签
添加 REVIEW、PERF 或团队使用的任何词——最多 30 个标签,每个都可选择在深色和浅色主题下都清晰易读的颜色。
免费,没有附加条件
没有订阅、没有“Pro”版、不收集数据,也不会在“输出”窗口或启动时显示消息。我们唯一的请求是:在你用过一段时间之后,到 Marketplace 给个评分。支持 Visual Studio 2022 和 2026,x64 和 ARM64。
功能
- 彩色标签:注释开头的
TODO、FIXME、BUG、HACK、NOTE、INFO和ANCHOR会为整条注释着色;标签词以粗体显示在柔和的背景上。 - Better Comments 简写:
// !表示重要注释,// ?表示问题,////表示划掉的代码。 - 作者、Issue 和截止日期:可识别
TODO(anna)、#142和due 2026-11-01;逾期的日期会变为红色。 - 注释窗口:解决方案中所有带标签的注释,按标签、项目和文件分组,每个标签有一个筛选块,还有逾期筛选和搜索框。
- 悬停卡片:将指针停在标签词上,即可看到它的含义、作者、剩余天数,并可转到所有同类注释。
- 锚点:
// ANCHOR: name标记长文件中的某个部分;按 Ctrl+K, Ctrl+, 列出锚点并跳转。 - 以标签颜色显示的滚动条标记:在长文件中也能立刻看出悬而未决的问题在哪里。
- 所有带注释的语言:C#、Visual Basic、F#、C++、TypeScript 和 JavaScript、XAML 和 XML、HTML、CSS、SQL、Python、PowerShell、Razor 等;支持深色和浅色主题。
锚点
// ANCHOR: name 标记长文件中的某个部分。编辑 → 转到 → NoteSmith Anchors(Ctrl+K, Ctrl+,)列出插入点所在文件的锚点,并预先选中你当前所在的部分:键入以筛选,按 Enter 跳转。锚点同样在滚动条上有标记,在注释窗口中有自己的分组。

设置
工具 → 选项 → SmithWorks → NoteSmith。每个选项都有说明,顶部的预览会立即以所选标签和样式显示示例注释。
| 选项 | 默认值 |
|---|---|
| 为注释标签着色 | 开 |
| Better Comments 简写 | 开 |
| 在标签后显示背景 | 开 |
| 在滚动条上显示标记 | 开 |
| 悬停时显示卡片 | 开 |
| 标签 | 7 个内置标签和 3 个简写 |
| 作者、Issue 引用、截止日期 | 全部开启 |
| 收集整个解决方案的注释 | 开 |
| 请求在 Marketplace 上评分 | 开 |
设置保存在 %LocalAppData%\NoteSmith 中。

常见问题
哪些语言会着色?
在编辑器中,凡是 Visual Studio 会为注释着色的语言都支持:NoteSmith 从编辑器自身的着色中获取注释,因此在 C#、Visual Basic、F#、C++、TypeScript、JavaScript、XAML、XML、HTML、CSS、SQL、Python、PowerShell、Razor 等语言中同样有效。注释窗口、滚动条标记和锚点按扩展名读取文件:.cs、.vb、.fs、C 和 C++ 文件、.js、.ts、.xaml、.xml、.html、.css、.scss、.sql、.py、.ps1、.cshtml、.razor、.yml 等。
为什么小写的 todo 没有着色?
标签按原样匹配,这样普通句子中的单词永远不会被着色。如果你的团队习惯这样写,请将 Todo 或 todo 添加到标签表中。
它与任务列表有什么不同?
Visual Studio 的任务列表默认只以纯文本显示 TODO、HACK 和 UNDONE。注释窗口则以颜色显示标签表中的所有标签,将它们分组,可按标签、日期和文本筛选,并跟踪磁盘上的更改。
注释窗口会读取哪些文件?
解决方案文件夹(或打开的文件夹)下的所有源文件,但 bin、obj、node_modules、.git、.vs、packages,*.Designer.cs 和 *.g.cs 等生成的文件,压缩过的脚本以及大于 1 MB 的文件除外。只是看起来像注释的字符串("http://…")会被跳过。
可以更改锚点列表的快捷键吗?
可以:工具 → 选项 → 环境 → 键盘,命令 Edit.NoteSmithAnchors。
NoteSmith 会发送任何数据吗?
不会。没有遥测,也不访问网络;你的代码始终留在你的计算机上。
在哪里报告问题或提出功能建议?
请在 GitHub 上的 Feedback 仓库中提交 issue——那里有用于报告错误和提出建议的表单(如有私密名称,请先替换)。也可以使用 Marketplace 上的 Q&A 选项卡。
更新日志
1.0.1
- 在扩展确实有用之后,只请求一次在 Marketplace 上评分——带有“以后再说”和“不再询问”,也可以在选项中关闭。
1.0.0
- 首个公开版本。

注释窗口
视图 → 其他窗口 → NoteSmith Comments。打开的解决方案或文件夹中所有带标签的注释,先按标签分组,再按项目和文件分组。筛选块用于显示或隐藏某个标签,已逾期 只保留逾期的注释,搜索框按文本和文件筛选。文件在后台读取——
bin、obj、node_modules和生成的文件会被跳过——磁盘上的文件更改后会重新读取。双击或按 Enter 即可打开对应的行。悬停卡片
将指针停在标签词或截止日期上:卡片会说明标签的含义,显示作者、截止日期及剩余或逾期天数、Issue,以及解决方案中同类注释的数量。全部 TODO 注释 会打开只显示该标签的注释窗口,标签设置… 会打开选项页。