You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
164 lines
5.3 KiB
164 lines
5.3 KiB
linters:
|
|
disable-all: true # 关闭其他linter
|
|
enable:
|
|
# 进制使用非ASCII字符
|
|
- asciicheck
|
|
- bidichk
|
|
# 降低代码复杂度
|
|
- cyclop
|
|
- gocognit
|
|
- gocyclo
|
|
- maintidx
|
|
# 高可拓展性的go源码linter
|
|
- gocritic
|
|
# 禁止保留未使用的代码块
|
|
#---------------------------------------
|
|
#- deadcode
|
|
# The linter 'deadcode' is deprecated (since v1.49.0) due to: The owner seems to have abandoned the linter
|
|
# 新版本的linter已经不建议使用deadcode了,不使用的代码不会被报错了
|
|
#---------------------------------------
|
|
- ineffassign
|
|
# 减少代码拷贝
|
|
- dupl
|
|
# 禁止两个time.Duration类型相乘
|
|
- durationcheck
|
|
# 所有err都要处理
|
|
- errcheck
|
|
# 在Go 1.13之后使用errors.Wrap可能导致的问题
|
|
- errorlint
|
|
# 检查switch的全面性,以免遗漏场景
|
|
- exhaustive
|
|
# 禁止将for-range value的指针暴露给外部
|
|
- exportloopref
|
|
# 禁止使用特定的标识符
|
|
- forbidigo
|
|
# 禁止出现长函数
|
|
- funlen
|
|
# 控制golang的包引用的顺序
|
|
- gci
|
|
# 禁止使用全局变量 --需要使用 //nolint:gochecknoglobals // 说明原因
|
|
- gochecknoglobals
|
|
# 禁止使用init函数
|
|
- gochecknoinits
|
|
# 如果有相同的string变量请使用consts替换
|
|
- goconst
|
|
# 检查if语句是否有简单的语法
|
|
- ifshort
|
|
# 禁止出现长语句
|
|
- lll
|
|
# struct禁止包含context.Context字段
|
|
- containedctx
|
|
# 返回两个参数,一个数据,一个是err,禁止两个都是nil
|
|
- nilnil
|
|
# 禁止使用Sprintf去构造URL中的host和port
|
|
- nosprintfhostport
|
|
# 如果知道slice大小,定义时需分配空间
|
|
- prealloc
|
|
# 检查prometheus meteics的指标名是否规范
|
|
- promlinter
|
|
# 强制要求const/import/var在一个组
|
|
- grouper
|
|
# 检查go1.17的版本是否使用os.Setenv替换t.Setenv
|
|
- tenv
|
|
# 检查变量名长度
|
|
- varnamelen
|
|
# 强制一致性的impotr别名
|
|
- importas
|
|
# 类型断言时需检查是否成功
|
|
- forcetypeassert
|
|
# 保证类型、常量、变量和函数的声明顺序和数量
|
|
- decorder
|
|
# 检查err的定义规范--types类型的定义是以Error结尾的,常量的定义是Err打头的
|
|
- errname
|
|
# SQL Query方法错误检查
|
|
- execinquery
|
|
# 禁止errors使用'=='和'!='等表达式--与nil和io.EOF比较除外
|
|
- goerr113
|
|
# 官方代码格式化
|
|
- gofmt
|
|
- gofumpt
|
|
- goimports
|
|
# 禁止使用魔法数字
|
|
- gomnd
|
|
# 检查依赖的黑白名单
|
|
- gomodguard
|
|
# 检查类似printf的函数是否以f结尾
|
|
- goprintffuncname
|
|
# 安全检查
|
|
- gosec
|
|
# 官方错误检查
|
|
- govet
|
|
# 检查拼写错误
|
|
- misspell
|
|
# 如果函数过长,禁用裸返回
|
|
- nakedret
|
|
# 禁止深度嵌套的if语句
|
|
- nestif
|
|
# 如果使用nolint指令需要给出理由-- //nolint:gochecknoglobals // 原因
|
|
- nolintlint
|
|
# 禁止使用Go关键字命名
|
|
- predeclared
|
|
# 去掉没有必要的type转换
|
|
- unconvert
|
|
# 强制使用空行
|
|
- wsl
|
|
# 检查文件头部和尾部的换行
|
|
- whitespace
|
|
# 替换golint的
|
|
- revive
|
|
# 测试代码使用*_test的包目录
|
|
- testpackage
|
|
# 启用并行测试
|
|
- paralleltest
|
|
# 检查帮助函数里面有没有调用t.Helper()函数
|
|
- thelper
|
|
linters-settings:
|
|
errcheck:
|
|
check-type-assertions: true # 检查类型断言
|
|
check-blank: true # 检查使用 _ 来处理错误
|
|
errorlint:
|
|
errorf: true # 检查fmt.Errorf错误是否用%w
|
|
exhaustive:
|
|
check-generated: false # 不检查生成的文件
|
|
default-signifies-exhaustive: false # 不检查是否有default
|
|
funlen:
|
|
lines: 65 # 一个函数总行数限制
|
|
statements: 40 # 检查函数中语句的数量
|
|
gci:
|
|
sections:
|
|
- standard # 标准库
|
|
- default # 默认按字典顺序排序
|
|
- prefix(cos/lobbyplatform) # 特殊前缀的包
|
|
gomodguard: # 检查依赖的黑白名单
|
|
allowed:
|
|
# List of allowed modules.
|
|
# Default: []
|
|
modules:
|
|
- gopkg.in/yaml.v2
|
|
# List of allowed module domains.
|
|
# Default: []
|
|
domains:
|
|
- golang.org
|
|
blocked:
|
|
# List of blocked modules.
|
|
# Default: []
|
|
modules:
|
|
# Blocked module.
|
|
- github.com/uudashr/go-module:
|
|
# Recommended modules that should be used instead. (Optional)
|
|
recommendations:
|
|
- golang.org/x/mod
|
|
# Reason why the recommended module should be used. (Optional)
|
|
reason: "`mod` is the official go.mod parser library."
|
|
# List of blocked module version constraints.
|
|
# Default: []
|
|
versions:
|
|
# Blocked module with version constraint.
|
|
- github.com/mitchellh/go-homedir:
|
|
# Version constraint, see https://github.com/Masterminds/semver#basic-comparisons.
|
|
version: "< 1.1.0"
|
|
# Reason why the version constraint exists. (Optional)
|
|
reason: "testing if blocked version constraint works."
|
|
# Set to true to raise lint issues for packages that are loaded from a local path via replace directive.
|
|
# Default: false
|
|
local_replace_directives: false
|
|
|