goland golang-ci lint

golangci-lint

What & Why

image

lint

在计算机科学中,lint是一种工具程序的名称,它用来标记源代码中,某些可疑的、不具结构性(可能造成bug)的段落。它是一种静态程序分析工具,最早适用于C语言,在UNIX平台上开发出来。后来它成为通用术语,可用于描述在任何一种计算机程序语言中,用来标记源代码中有疑义段落的工具。

golangci lint

能快速执行linters。并行运行linter,使用缓存,支持yaml配置,与所有主要IDE集成,并包含数十个linter,支持定制化。

作用:

开发中使用能提前检查一些语法问题和制定代码规范。

github :https://github.com/golangci/golangci-lint

官网:https://golangci-lint.run/

How

安装

brew install golangci-lint
brew upgrade golangci-lint 

or

curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.42.1

版本要求

本地go 1.16.5

go1.12+ golangci-lint (>= 1.18.0)

检测是否安装成功 golangci-lint --version

image

配置

goland 配置 -v 显示执行流程,用来查看用了哪些linter

run -v --disable=typecheck $FileDir$
对改动的文件目录做扫描,也可以对整个项目扫描。但开发中这样使用效率低

image

到这里基本就可以使用,修改文件保存时,会检查当前文件下代码

支持配置的格式(非必需,可以自己定义配置,没有会默认)

  • .golangci.yml

  • .golangci.yaml

  • .golangci.toml

  • .golangci.json

GolangCI Lint还搜索从第一个分析路径的目录到根目录的所有目录中的配置文件。如果没有找到配置文件,GolangCI Lint将尝试在主目录中找到一个。要查看正在使用哪个配置文件以及从何处获取配置文件,请使用-v选项运行查看

使用

可以像上面自定义配置文件来配置运行的参数和使用的linter和一些配置参数,如果不配置,会用默认的,

golangci-lint help linters 查看默认使用的 linters

https://golangci-lint.run/usage/linters/

image

默认使用的9种linter

deadcode # 未使用的代码

errcheck # 是否对error处理

gosimple #检查代码是否可以简化

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

ineffassign #检测是否有未使用的代码、变量、常量、类型、结构体、函数、函数参数等

staticcheck #静态分析检查

structcheck #检查没有用的结构体字段

unused #检查未使用的常量,变量,函数和类型

varcheck #查找未使用的全局变量和常量

你可能感兴趣的:(goland golang-ci lint)