golangci-lint使用笔记

GolangCI-Lint是一个lint聚合器,它的速度很快,平均速度是gometalinter的5倍。它易于集成和使用,具有良好的输出并且具有最小数量的误报。而且它还支持go modules。最重要的是免费开源。

一开始想用gometalinter,结果发现golangci-lint更好用,而且下载也更方便. gometalinter找了半天没找到安装方法,go get 下载报错 最后选择用golangci-lint 



GitHub地址:https://github.com/golangci/golangci-lint/

安装方法

# Go 1.16+

go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.42.1

# Go version < 1.16

go get -u github.com/golangci/golangci-lint/cmd/golangci-lint@v1.42.1


简单使用

-golangci-lint run [目录]/[文件]

-golangci-lint run ./...

-golangci-lint run dir1 dir2/... dir3/file1.go


支持的linterlinter详细参数设置

可以通过命令golangci-lint help linters查看它支持的linters。你可以传入参数-E/--enable来使某个linter可用,也可以使用-D/--disable参数来使某个linter不可用。

golangci-lint run --disable-all -E errcheck

golangci-lint run -v --no-config --disable-all -E goimports --fix main.go

常用的Linter介绍

typecheck 与go编译器类似的类型检查

cyclop

govet Vet检查Go源代码并报告可疑的结构,比如Printf调用,其参数与格式字符串不一致

ineffassign  检测对现有变量的赋值何时未被使用

staticcheck

varcheck    找到未使用的全局常量或变量

deadcode  未使用到的代码,

errcheck 返回的error未处理

structcheck 检测结构体中未使用的字段

unused  未使用的常量、变量、函数和类型定义

gosimple 代码中有需要优化的地方,用于简化代码风格

.golangci.yml配置  golangci-lint run -c .golangci.yaml

run:

  skip-dirs:

    - pkg/analyzer/testdata

linters-settings:

  golint:

    min-confidence: 0

  goconst:

    min-len: 2

    min-occurrences: 3

  misspell:

    locale: US

linters:

  enable-all: true

  disable:

  - lll

  - prealloc

  - dupl

  - wsl

  - nlreturn

  - goerr113

  - exhaustivestruct

  - paralleltest

  - testpackage

  - gomnd

  - gocognit

  - nestif

  - interfacer


有问题 会直接报错 不需要编译,这里只是多了一个空格,就会有提示,非常方便



参考文章

https://www.jianshu.com/p/7b24d4ce68c0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容