如何让codespell在代码行内忽略指定单词?
如何让codespell在代码行内忽略指定单词?
我完全懂你的需求——不想全局添加忽略词或者直接忽略整个文件,就想在这一行单独让codespell放过AtMost这个gtest关键字对吧?你之前加的注释没生效,问题出在codespell行内忽略的语法细节上,给你几个靠谱的解决办法:
方法一:行尾添加精准忽略注释
直接在代码行末尾加上单行注释,明确指定要忽略的单词,注意单词大小写要和代码里的完全一致:
EXPECT_CALL(*kms, close_stream(_)).Times(AtMost(1)); // codespell:ignore AtMost
这个注释会告诉codespell,在这一行里跳过对AtMost的检查。
方法二:用更明确的ignore-at-line指令
如果上面的方法没生效,可能是你的codespell版本偏旧,试试更明确的行内指令:
EXPECT_CALL(*kms, close_stream(_)).Times(AtMost(1)); // codespell:ignore-at-line AtMost
ignore-at-line是专门针对单行的忽略指令,兼容性更好,能精准覆盖这一行的指定单词。
方法三:单独注释行前置忽略
要是前两种都不行,还可以把忽略指令放在代码行的上方,用单独的注释行:
// codespell:ignore AtMost EXPECT_CALL(*kms, close_stream(_)).Times(AtMost(1));
这种方式对一些老版本的codespell支持更稳定,同样要注意单词的大小写完全匹配。
避坑提示
- 必须用单行注释
//,块注释/* */里的忽略指令codespell识别不到 - 要忽略的单词必须和代码里的拼写、大小写完全一致,比如不能把
AtMost写成atmost - 如果还是不行,建议更新codespell到最新稳定版,旧版本可能不支持行内忽略功能
内容来源于stack exchange
相关产品推荐
相关产品推荐

