忽略规则 — .linthisignore¶
.linthisignore 文件让你无需编辑 .linthis/config.toml 就能快速抑制 lint 问题。它位于项目根目录,支持两种条目:文件路径 glob 模式 和 规则代码。
文件格式¶
# 注释行和空行会被忽略
# 文件/路径 glob 模式(gitignore 语法)
vendor/**
*.generated.go
build/
# 规则禁用条目 — 以 "rule:" 为前缀
rule:E501
rule:clippy::too_many_arguments
rule:complexity/*
解析规则:
| 行内容 | 效果 |
|---|---|
空行或以 # 开头 |
忽略 |
以 rule: 开头 |
禁用对应规则代码 |
| 其他内容 | 文件 glob 模式 — 匹配的文件从 lint 中排除 |
使用 CLI¶
# 添加文件 glob 模式
linthis ignore add "vendor/**"
linthis ignore add "*.generated.go"
# 添加规则禁用条目(需要包含 "rule:" 前缀)
linthis ignore add "rule:E501"
linthis ignore add "rule:clippy::too_many_arguments"
linthis ignore add "rule:linthis-complexity"
# 删除条目(精确匹配)
linthis ignore remove "vendor/**"
linthis ignore remove "rule:E501"
# 列出所有当前条目
linthis ignore list
add 是幂等的 — 添加已存在的条目会打印提示并什么都不做。
在交互式修复模式中添加忽略¶
使用 linthis fix 交互模式时,对任意问题按 w 键,即可将 rule:<code> 写入 .linthisignore,该规则将在所有后续运行中永久抑制——无需手动编辑任何配置文件。
[W1] [rust][clippy] src/main.rs:42
复杂度超过阈值
操作: [e]编辑 [i]忽略 [a]接受 [w]写入忽略 [s]跳过 [p]上一个 [g]跳转 [q]退出
> w
✓ Written to .linthisignore: rule:linthis-complexity
工作原理¶
.linthisignore 在流水线中 两个节点 生效:
1. 路径模式 — lint 前文件排除¶
路径 glob 模式在文件扫描器启动 lint 之前加载。匹配任意模式的文件会被完全排除——与在 config.toml 的 excludes 中列出效果相同。
2. 规则代码 — lint 后过滤¶
规则代码(rule: 前缀条目)在规则过滤器运行之前合并到 config.rules.disable 中。代码匹配禁用规则的任何问题都会从输出中移除。这同时适用于 lint、复杂度和安全检测结果。
与 config.toml 的关系¶
.linthisignore 与 .linthis/config.toml 互补。
| 使用场景 | 配置位置 |
|---|---|
| 快速的分支级或开发者级抑制 | .linthisignore |
由 linthis fix 交互模式自动添加 |
.linthisignore |
| 团队级永久配置 | .linthis/config.toml |
等效的 config.toml 配置:
excludes = ["vendor/**", "*.generated.go"]
[rules]
disable = ["E501", "clippy::too_many_arguments"]
.linthisignore 示例¶
# 忽略生成文件和第三方代码
vendor/**
*.pb.go
build/
dist/
# 禁用特定 lint 规则
rule:E501
rule:clippy::too_many_arguments
# 禁用所有复杂度检查
rule:linthis-complexity
# 用通配符前缀禁用整个规则类别
rule:clippy::*
优先级与覆盖¶
.linthisignore 条目叠加在 config.toml 之上——它们扩展 excludes 和 rules.disable 列表,而非替换。标量字段(如 max_complexity)仍以 config.toml 为准。
参见¶
- 配置 — 完整的
config.toml参考 - CLI 参考:ignore — 命令标志说明
- AI 智能修复 — 交互式修复模式