lolly/.golangci.yml
xfy 16069149a3 chore: 新增 golangci-lint 配置
配置项目代码检查规则,保留核心检查,禁用噪音过大的 linters。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:48:32 +08:00

156 lines
4.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: 2
run:
timeout: 5m
issues-exit-code: 1
tests: true
output:
formats:
colored-line-number:
print-issued-lines: true
print-linter-name: true
linters:
default: all
disable:
# 禁用噪音过多或不相关的 linters
- arangolint # ArangoDB 特定
- asasalint # []any 检查
- asciicheck # 非 ASCII 标识符(项目有中文)
- bidichk # Unicode 序列检查
- bodyclose # HTTP body 关闭检查
- canonicalheader # Header 规范化
- containedctx # 结构体包含 context
- contextcheck # context 继承检查
- copyloopvar # 循环变量复制
- cyclop # 圈复杂度
- decorder # 声明顺序
- depguard # 依赖检查
- dogsled # 多个 blank identifier
- dupl # 重复代码
- dupword # 重复单词
- durationcheck # Duration 乘法
- embeddedstructfieldcheck # 嵌入字段顺序
- err113 # 静态错误定义
- errchkjson # JSON 编码检查
- errname # 错误命名
- errorlint # 错误包装检查
- exhaustruct # 结构体完整性
- exptostd # exp 包替换
- fatcontext # 嵌套 context
- forbidigo # 禁止标识符
- forcetypeassert # 强制类型断言
- funcorder # 函数顺序
- funlen # 函数长度
- ginkgolinter # ginkgo 框架
- gochecknoglobals # 全局变量检查
- gochecknoinits # init 函数检查
- gochecksumtype # sum 类型检查
- gocognit # 认知复杂度
- gocritic # 代码批评
- gocyclo # 圈复杂度
- godoclint # godoc 检查
- godot # 注释句点
- godox # TODO/FIXME 检查
- goheader # 文件头
- gomoddirectives # go.mod 指令
- gomodguard # 模块依赖检查
- goprintffuncname # printf 函数命名
- gosec # 安全检查(太多噪音)
- gosmopolitan # 非 ASCII 字符(项目有中文)
- grouper # 表达式分组
- iface # 接口污染检查
- importas # 导入别名
- inamedparam # 接口方法参数命名
- interfacebloat # 接口方法数量
- intrange # 整数 range
- iotamixing # iota 混用
- ireturn # 返回接口检查
- lll # 行长度
- loggercheck # 日志检查
- maintidx # 可维护性指数
- makezero # slice 初始长度
- mirror # bytes/strings 镜像
- misspell # 拼写检查
- modernize # 现代化建议
- mnd # 魔法数字
- musttag # 结构体标签强制
- nakedret # naked return
- nestif # 嵌套 if
- nilerr # nil 错误检查
- nilnesserr # nilness 错误
- nilnil # nil nil 检查
- nlreturn # return 前换行
- noctx # 缺少 context
- noinlineerr # 内联错误处理
- nonamedreturns # 命名返回值
- nosprintfhostport # sprintf host port
- paralleltest # 并行测试
- perfsprint # fmt.Sprintf 性能
- prealloc # 预分配
- predeclared # 预声明标识符
- promlinter # Prometheus 指标
- protogetter # proto getter
- reassign # 变量重赋值
- recvcheck # 接收者检查
- rowserrcheck # Rows.Err 检查
- sloglint # slog 检查
- spancheck # OpenTelemetry span
- sqlclosecheck # SQL 关闭检查
- tagalign # 标签对齐
- tagliatelle # 标签命名
- testableexamples # 可测试示例
- testifylint # testify 检查
- testpackage # 测试包命名
- thelper # t.Helper 检查
- tparallel # t.Parallel 检查
- unconvert # 类型转换
- unqueryvet # SQL SELECT * 检查
- usestdlibvars # 标准库变量
- usetesting # testing 包使用
- varnamelen # 变量名长度
- wastedassign # 无用赋值
- whitespace # 空白检查
- wrapcheck # 错误包装
- wsl # whitespace废弃
- wsl_v5 # whitespace v5
- zerologlint # zerolog 检查
formatters:
default: all
disable:
- gofumpt
- goimports
linters-settings:
errcheck:
check-type-assertions: true
check-blank: true
govet:
enable-all: true
staticcheck:
checks: ["all", "-ST1000", "-ST1003"]
unused:
check-exported: false
revive:
severity: warning
rules:
- name: unused-parameter
severity: warning
disabled: false
issues:
exclude-rules:
- path: _test\.go
linters:
- dupl
- gosec
max-issues-per-linter: 0
max-same-issues: 0
new: false