ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

vscode插件Better Comments的Fortran支持:TaoToken统一Key接入与settings.json配置骨架

vscode插件Better Comments的Fortran支持:TaoToken统一Key接入与settings.json配置骨架 1. 为什么 Fortran 老项目在 VS Code 里注释高亮总是“缺一块”如果你维护过 Fortran 老项目大概率遇到过这种别扭事Python、TypeScript 文件里// TODO、# NOTE会被 Better Comments 染成醒目的颜色可一到.f90文件满屏的! TODO全是灰扑扑的普通注释找起来跟大海捞针一样。这不是你配置写错了而是 Better Comments 这个插件默认的解析器里压根没把 Fortran 的自由格式FortranFreeForm和固定格式fortran_fixed-form当成“支持注释标记的语言”来处理。Fortran 的注释符号是!自由格式.f90和固定格式.f都用它。Better Comments 内部靠一个parser.js里的case分支来决定每种语言的注释定界符Fortran 这两个语言 ID 不在名单里所以插件拿到文件后不知道该把!后面的内容当注释解析自然也就不会给TODO、NOTE、?、!这些标记上色。社区里早有人提过 PR思路就是在解析器里补上两个 case把!注册成 Fortran 的注释定界符。但插件作者迟迟没合并进主分支导致大家只能手动改本地安装文件或者忍受这种割裂体验。这篇就围绕这个场景给你一套可复制的settings.json配置骨架同时把 TaoToken 统一 Key 的接入步骤串进来。目标很明确让.f90里的! TODO、! NOTE、! ?跟主流语言一样有颜色区分并且这套配置能跟着你的开发环境走不因为换机器就丢。适合谁正在用 VS Code 维护 Fortran 老代码、又不想放弃 Better Comments 标记体系的开发者。下面从环境准备到验证渲染一步步来。2. TaoToken 统一 Key 前置把模型调用和编辑器配置解耦在动手改 Better Comments 之前先把 TaoToken 的 Key 准备好。原因很简单你后面可能会用 AI 辅助补全 Fortran 注释、生成settings.json片段、或者排查解析器问题统一用一个 Key 走 API比每个工具单独配一遍省事得多。TaoToken 的官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 注意 API 地址不带 UTM 参数直接写进配置里就行。操作路径不复杂先打开控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在里面创建 API Key。创建完复制那串 Key后面在 VS Code 的 AI 插件或者命令行工具里都会用到。如果你只是想让 Better Comments 的 Fortran 高亮生效其实不接 Key 也能做但既然要统一管理建议顺手把 Key 存到环境变量里比如TAOTOKEN_API_KEY这样settings.json里就不用硬编码密钥换机器时只改环境变量即可。这里有个细节TaoToken 的 Key 是统一入口模型对话、Coding Plan、API Keys 管理都在同一套体系下。你可以在模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 先试一下 Key 能不能正常调通确认没问题再往下配编辑器。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到参数格式问题可以对照查。API Keys 管理页是 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 后面如果 Key 要轮换也在这里操作。注意Key 不要直接提交到 Git 仓库。建议用.env或者系统环境变量settings.json里只引用变量名。3. 可复制配置settings.json 骨架与 parser.js 补丁3.1 settings.json 配置骨架Better Comments 的高亮规则本身是在settings.json里通过better-comments.tags数组定义的。默认配置对!、?、TODO、*有颜色但要让 Fortran 的!注释被识别光改 tags 不够还得让解析器认识 Fortran 语言 ID。先把settings.json的骨架贴出来你可以直接复制到用户设置或工作区设置里{ better-comments.tags: [ { tag: !, color: #FF2D00, strikethrough: false, underline: false, backgroundColor: transparent, bold: false, italic: false }, { tag: ?, color: #3498DB, strikethrough: false, underline: false, backgroundColor: transparent, bold: false, italic: false }, { tag: //, color: #474747, strikethrough: true, underline: false, backgroundColor: transparent, bold: false, italic: false }, { tag: todo, color: #FF8C00, strikethrough: false, underline: false, backgroundColor: transparent, bold: false, italic: false }, { tag: *, color: #98C379, strikethrough: false, underline: false, backgroundColor: transparent, bold: false, italic: false }, { tag: NOTE, color: #00FF00, strikethrough: false, underline: false, backgroundColor: transparent, bold: false, italic: false } ], files.associations: { *.f90: fortran-free-form, *.f: fortran_fixed-form, *.F90: fortran-free-form } }这里files.associations是关键一步。VS Code 默认可能把.f90识别成FortranFreeForm或者fortran-free-form不同版本语言 ID 大小写有差异。Better Comments 的解析器里判断的是FortranFreeForm和fortran_fixed-form这两个字符串所以你要确保文件关联后的语言 ID 跟解析器里的 case 对得上。如果对不上就算改了 parser.js 也不会生效。3.2 parser.js 补丁位置与内容Better Comments 安装目录下有个parser.js路径通常在Windows%USERPROFILE%\.vscode\extensions\aaron-bond.better-comments-*\out\parser.jsmacOS / Linux~/.vscode/extensions/aaron-bond.better-comments-*/out/parser.js用编辑器打开parser.js搜索case FortranFreeForm或者直接搜this.delimiter找到那一堆case分支。在合适位置插入两行case FortranFreeForm: this.delimiter !; break; case fortran_fixed-form: this.delimiter !; break;保存后重启 VS Code。这一步的本质是告诉插件遇到 Fortran 自由格式和固定格式时把!当作注释定界符后面的TODO、NOTE才会进入 tags 匹配流程。注意如果你开了 Settings Sync手动改的parser.js在同步时可能被覆盖。建议把补丁内容记在笔记里或者用工作区设置 本地脚本在同步后自动打补丁。4. 验证请求在 .f90 文件里确认标记渲染配置改完新建一个test.f90文件写入下面内容program test implicit none ! TODO: 这里需要补充边界条件检查 ! NOTE: 该子程序依赖外部库迁移时注意 ! ? 这个变量为什么用 real(8) 而不是 real(kind8) ! 普通注释不应该高亮 integer :: i do i 1, 10 print *, i end do end program test保存后观察! TODO应该显示橙色! NOTE显示绿色! ?显示蓝色普通!注释保持默认灰色。如果TODO没变色先检查settings.json里better-comments.tags的tag字段是否写成了todo小写——Better Comments 的匹配是大小写敏感的你写TODO就得配TODO写todo就得配todo。我一般统一用大写避免混淆。再验证一下固定格式.f文件program test implicit none C 这是固定格式的注释 ! TODO: 固定格式也支持感叹号注释 end固定格式里C开头的注释 Better Comments 默认不处理但!开头的应该能高亮。如果.f文件没反应检查files.associations里*.f是否映射到了fortran_fixed-form以及 parser.js 里对应的 case 是否拼写一致。如果你同时用 TaoToken 的模型对话来生成测试用例可以在模型对话页 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 输入“生成一段包含 TODO 和 NOTE 注释的 Fortran 自由格式代码”把返回结果贴进.f90文件顺便验证 Key 和编辑器配置两条链路都通。5. 本篇常见错排查Fortran 注释高亮不生效的几种原因第一种语言 ID 不匹配。这是最常见的。VS Code 状态栏右下角会显示当前文件的语言模式点一下能看到实际 ID。如果显示的是Fortran而不是FortranFreeFormparser.js 里的 case 就匹配不上。解决办法是在settings.json里用files.associations强制映射或者安装 Fortran 官方扩展后确认它注册的语言 ID。第二种parser.js 改错位置。有些版本的parser.js是压缩过的case分支可能写在同一行。搜索FortranFreeForm如果搜不到搜this.delimiter找到赋值逻辑在 switch 块里手动加 case。改完一定要重启 VS Code不是重载窗口是彻底退出再打开。第三种Settings Sync 覆盖。如果你开了同步改完 parser.js 后同步到另一台机器补丁会丢。建议把补丁做成脚本或者干脆在每台机器上手动改一次。长期方案是关注 Better Comments 的 GitHub PR 是否合并合并后升级插件即可。第四种Doxygen 风格!!被误高亮。Fortran 的 Doxygen 文档注释用!!作为续行符Better Comments 可能会把第二个!当成标记导致整行变红。如果遇到这种情况可以在better-comments.tags里把!的规则调窄或者用multiline相关配置限制匹配范围。这个属于插件本身的边界问题暂时没有完美解法只能权衡。第五种TaoToken Key 没生效导致 AI 辅助配置失败。如果你用 AI 生成settings.json片段时提示鉴权失败先检查环境变量TAOTOKEN_API_KEY是否设置正确再确认 API 基址写的是https://taotoken.net/api而不是带 UTM 的地址。API Keys 页面可以重新生成 Key接入文档里有完整的请求示例。6. 长期维护 Fortran 项目这套配置怎么持续用Fortran 老项目的维护周期往往很长配置一次管几年不现实。我的做法是把settings.json里的better-comments.tags和files.associations抽成工作区配置放在项目根目录的.vscode/settings.json里跟着仓库走。这样换机器、换同事只要打开项目就能拿到一致的注释高亮规则。parser.js 的补丁没法跟着仓库走但可以写一个postinstall脚本在npm install或者手动执行时自动往插件目录里追加 case 分支。如果你团队里有人用 Coding Plan 做长期编码辅助可以在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 了解统一 Key 下的编码方案把 Fortran 注释规范、settings.json模板都沉淀进去。Claude Code 相关的接入参考 https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-codeutm_campaignrewrite Anthropic 兼容接口的说明在 https://taotoken.net/anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentanthropicutm_campaignrewrite 。这些入口都走同一个 Key省去多套凭证管理的麻烦。最后提醒一句Better Comments 的 Fortran 支持目前还是靠社区补丁维持插件升级后 parser.js 可能被重置。每次升级插件后花两分钟检查一下! TODO是否还高亮比等到翻代码时才发现标记失效要划算。把补丁内容和验证步骤记在项目 README 里下一个接手的人会感谢你。
返回列表