lolly/.golangci.yml
xfy d21e27fbac fix(lint): 修复 golangci-lint 错误 (119 -> 0 issues)
主要修复:
- errcheck: defer Close 使用 //nolint:errcheck,类型断言改为 ok 检查
- govet fieldalignment: 调整结构体字段顺序优化内存布局
- revive unused-parameter: 将未使用参数改为 _
- exhaustive: 添加缺失的 switch case 或 default
- goconst: 提取重复字符串为常量 (accessAllow, accessDeny 等)
- staticcheck SA9003: 修复空分支逻辑
- gofmt: 运行 gofmt -w 格式化
- nolintlint: 修复 nolint 注释格式

其他改进:
- 更新 .golangci.yml 配置,启用更严格的检查
- 移除未使用的代码和导入
- 简化测试辅助函数调用

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 16:15:31 +08:00

182 lines
3.0 KiB
YAML

run:
timeout: 5m
issues-exit-code: 1
tests: true
output:
print-issued-lines: true
print-linter-name: true
linters:
enable-all: true
disable:
# 合理禁用 - 项目有中文注释/标识符
- asciicheck
- gosmopolitan
# 风格限制 - 可接受的灵活性
- funlen
- gocyclo
- cyclop
- lll
- varnamelen
- tagalign
- nlreturn
- wsl
- nestif
# 重复/噪音
- dupl
- dupword
- misspell
# 注释风格
- godot
- godox
- goheader
# 测试相关 - 不强制
- paralleltest
- tparallel
- testpackage
- testifylint
- testableexamples
- thelper
# 框架/工具特定 - 项目不使用
- ginkgolinter
- promlinter
- protogetter
- spancheck
- zerologlint
# 声明/结构风格
- decorder
- exhaustruct
- iface
# 命名风格
- errname
- inamedparam
- nonamedreturns
# 不适用的检查
- bidichk
- rowserrcheck
- sqlclosecheck
# 可配置而非禁用
- forbidigo
- depguard
- gomodguard
- gomoddirectives
- importas
# 复杂度度量
- gocognit
- maintidx
# 噪音/风格 - 已有惯例
- dogsled
- nosprintfhostport
- goprintffuncname
- tagliatelle
- usestdlibvars
- usetesting
- unparam
- mnd
- ireturn
- nakedret
- interfacebloat
- gocritic
- gosec
# 项目特定豁免
- asasalint
- containedctx
- err113
- forcetypeassert
- gochecknoglobals
- gochecknoinits
- nilerr
- nilnil
- musttag
- noctx
- intrange
- reassign
- perfsprint
- wastedassign
- wrapcheck
- errchkjson
# 额外禁用
- bodyclose
- contextcheck
- errorlint
- canonicalheader
- copyloopvar
- durationcheck
- exptostd
- fatcontext
- gochecksumtype
- grouper
- loggercheck
- makezero
- mirror
- nilnesserr
- predeclared
- recvcheck
- sloglint
- unconvert
- whitespace
issues:
exclude-rules:
- path: '_test\.go'
linters:
- dupl
- goconst
- errcheck
- govet
- revive
- staticcheck
- unused
- path: 'internal/ssl/ocsp_test\.go'
linters:
- unparam
- path: 'internal/lua/'
text: "stutters"
linters:
- revive
linters-settings:
errcheck:
check-type-assertions: true
check-blank: false
govet:
enable-all: true
staticcheck:
checks: ["all", "-ST1000", "-ST1003"]
revive:
severity: warning
rules:
- name: unused-parameter
severity: warning
- name: unreachable-code
severity: error
- name: context-as-argument
severity: warning
- name: error-naming
severity: warning
- name: error-return
severity: error
- name: exported
severity: warning
arguments:
- "disableStutteringCheck"
gofmt:
simplify: true