golangci lint

golangci lint是Go linter一个聚合器,里面内置了几十个linter,并且更新速度快,是一个强大的Go代码静态检查的工具。

golangci lint安装

官方提倡二进制安装,但为了快速入门,咱们就不使用二进制安装了

# Go 1.16+
go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.43.0# Go version < 1.16
go get -u github.com/golangci/golangci-lint/cmd/golangci-lint@v1.43.0

快速上手

可以直接使用下面命令,会对当前目录下的所有文件进行静态代码检查。
这两个命令是等价的

golangci-lint run
golangci-lint run ./...

也可以指定具体检查哪些目录和文件

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

golangci-lint可以零配置使用,默认情况下会启用和没有启用的linter可以使用下面命令查看

golangci-lint help linters

可以通过-E启用linter,-D禁用linters

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

配置使用

配置文件的优先级低于命令行选项。如果在命令行和配置文件中提供了相同的bool/string/int选项,则命令行中的选项将被使用。
启用禁用的linter是在命令行和配置文件组合而来的。

golangci-lint 在当前工作目录的以下路径中查找配置文件:

  • .golangci.yml
  • .golangci.yaml
  • .golangci.toml
  • .golangci.json

golangci-lint 还在从第一个分析路径的目录到根目录的所有目录中搜索配置文件。如果没有找到配置文件,将尝试在家目录中找到一个。
使用golangci-lint config path,查看使用的是哪个配置文件。

下面是配置文件的简单示例和注释

run:skip-dirs: # 设置要忽略的目录- .*~- cmdskip-files: # 要忽略的文件_test.go- _test.gotimeout: 2m #超时时间,默认1分钟concurrency: 4 #默认的并发使用cup数量
linters-settings: errcheck:check-type-assertions: true # 报告不检查类型断言的错误gocognit:min-complexity: 10 # 报告的最小代码复杂度,默认为30dogsled:max-blank-identifiers: 2 # 检查有太多空白标识符的赋值;默认是2lll:line-length: 20 # 最大行长,更长的行将被报告。默认是120,makezero:always: false # 只允许长度为0的片初始化。默认的是false.
linters:disable-all: true #关闭所有enable: #使用的linter- errcheck- gocognit- dogsled- lll- makezero

官方提供了yaml配置文件的例子,里面包含了所有的配置项和注释,地址是这个:
https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml

golangci-lint Go静态代码检查工具的使用相关推荐

  1. c/c++ 静态代码检查工具

    文章目录 道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物 lint gcc 12 sonarqube 道理呢大家都懂,但是需要时间消化,而且人还是易犯错误的动物 所以才有了,这些个静态代码 ...

  2. linux静态代码检查工具,linux下splint检测C语言代码质量

    在linux下并没有pclint,可以使用splint代替.splint使用一.splint介绍splint是一个静态检查C语言程序安全弱点和编写错误的工具.splint会进行多种常规检查,包括未使 ...

  3. 静态代码检查工具简介

    静态代码检查工具简介 在 Java 软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷.传统的代码复审.同行评审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情.Java 静态代码分 ...

  4. 静态代码检查工具 cppcheck 的使用

    CppCheck是一个C/C++代码缺陷静态检查工具.不同于C/C++编译器及其它分析工具,CppCheck只检查编译器检查不出来的bug,不检查语法错误.所谓静态代码检查就是使用一个工具检查我们写的 ...

  5. vscode中对flake8(python静态代码检查工具)和yapf(python代码格式化工具)的设置

    在命令行下安装好flake8和yapf后在vscode中的用户设置(settings.json)中添加以下两行即可: "python.linting.flake8Enabled": ...

  6. 静态代码检查工具-PMD

    静态代码检查工具-PMD 分类: 网络安全/ 工具使用/ 文章 提高代码的质量,除了要提高逻辑上的控制以及业务流程的理解外,代码本身也存在提高的空间,例如一些潜在的问题可以很早的就避免.类似于编码规范 ...

  7. Java 静态代码检查工具及其原理

    Intellij IDEA 静态代码检查工具: checkstyle.pmd.findbugs. Alibaba Java Coding Guidelines; 三种工具的对比 工具 目的 检查项 F ...

  8. C/C++静态代码检查工具

    如果能够在代码提交测试之前发现这些潜在的错误,就能够极大地减轻测试人员的压力,减少软件项目的除错成本,可是传统的C/C++编译器对此已经无能为力,这个任务只能由专用的代码检查工具完成.有很多C/C++ ...

  9. Python 常用静态代码检查工具简介

    对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...

  10. Python 进阶 — Pylint 静态代码检查工具

    目录 文章目录 目录 Pylint 错误类型 安装 使用 Pylint 与 Flake8 一般,Pylint 也是一款 Python 的静态代码检查工具,它会分析 Python 代码中的错误,查找不符 ...

最新文章

  1. C#获取文件的当前路径
  2. 神了!阿里资深大牛熬夜整理Python学习路线,终于开放了
  3. 人工智能电磁车模如何入手?
  4. spring mvc 自动生成代码
  5. 微信好友数据打包下载--微信数据分析(二)
  6. 【Vegas2010】cnblogs(博客园)排名原来是这样算的~
  7. codeforces 297 E. Anya and Cubes
  8. vue在html中写style,vue开发之style(六)(CSS页面布局之样式、背景、文字)
  9. JavaScript——Object类型
  10. 日语学习 (助词 「で」 和「に」 的区别)
  11. 左右两个列表框项之间的添加、移除、上下移动
  12. JMeter数据库请求配置及示例
  13. 腾讯上海安全团队招聘实习生
  14. 什么是技术交底书? 如何撰写技术交底书
  15. 如何做IT项目PoC测试
  16. JavaScript 编程精解 中文第三版 十四、文档对象模型
  17. ninja ripper新版教程
  18. 团队管理的四大挑战——留人篇
  19. 数据分析师培训告诉你 三个最常见的数据分析面试方向
  20. 如何改变视频的MD5值?一分钟让你学会操作

热门文章

  1. C语言实现求字符串的长度
  2. 猎豹浏览器收藏内容恢复
  3. Magisk 食用手册
  4. 【简单总结】句子相似度计算的几种方法
  5. winscp普通用户上传文件没有权限解决
  6. 【无标题】网络,keepalived
  7. Linux系统简介及简要shell命令介绍(2)
  8. 广州非按揭购房提取住房公积金攻略
  9. 微信排版 Markdown 编辑器
  10. wps表格批量插入图片