当前位置: 首页 > article >正文

golangci-lint安装与Goland集成

golangci-lint安装与Goland集成

  • 1.golangci-lint概述
  • 2.golangci-lint安装
  • 3.Goland 中集成 golangci-lint
  • 4.golangci-lint 的使用
  • 5.排除代码检查

1.golangci-lint概述

golangci-lint是用于go语言的代码静态检查工具集

官网地址:golangci-lint

特性:

  • 快速:并行非执行 linters,可以复用 Go构建cache和caches分析结果
  • 配置文件基于yaml语法进行配置
  • 可以与常见开发工具集成,例如:VS Code、Sublime、Goland、Emacs、Vim、Atom、Github Actions
  • 包含了很多 linters,不需要安装
  • 执行结果输出带有美观,不仅带有颜色,还有源码行号和标识
  • 尽可能的减少误报,可以通过设置忽略某些模式

2.golangci-lint安装

macos:

brew install golangci-lint
brew upgrade golangci-lint

linux/windows:

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

在这里插入图片描述

安装完成后,进行验证:

golangci-lint --version

在这里插入图片描述


3.Goland 中集成 golangci-lint

1、安装插件

在这里插入图片描述

2、工具 - File Watcher - 添加golangci-lint

在这里插入图片描述

3、作用域改为所有位置,应用确认

在这里插入图片描述

这样在goland每次保存就会自动触发检查了


4.golangci-lint 的使用

在项目根路径下面执行 golangci-lint run 就可以检查整个项目的代码

在这里插入图片描述

没有配置文件时,golangci-lint 使用默认的代码检查器进行检查

# 查看默认启用和关闭了哪些检查器
golangci-lint help linters

5.排除代码检查

通过注释可以跳过代码检查,使用方式如下:

var bad_name int //nolint
var bad_name int //nolint:golint,unused

//nolint
func allIssuesInThisFunctionAreExcluded() *string {
  // ...
}

//nolint:govet
var (
  a int
  b int
)

或者忽略对整个文件进行检查:

//nolint:unparam
package pkg

http://www.kler.cn/a/451185.html

相关文章:

  • 【0x001D】HCI_Read_Remote_Version_Information命令详解
  • 论文DiffBP: generative diffusion of 3D molecules for target protein binding
  • GPT人工智能在医疗文档中的应用
  • 007-spring-bean的相关配置(重要)
  • EsChatPro 接入国内 DeepSeek 大模型
  • 企业数字化转型加速,现代 IT 如何用 Datadog 全面提升可观测性?
  • 《算法》题目
  • 13. 导出与导入镜像
  • 边缘计算收益稳定
  • 信息安全技术——物理环境与设备安全、虚拟专用网
  • 【YashanDB知识库】XMLAGG方法的兼容
  • DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(二)
  • Refusal in Language Models Is Mediated by a Single Direction
  • GESP CCF C++五级编程等级考试认证真题 2024年12月
  • 第20天:JS信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化
  • springboot-starter版本升级es版本问题
  • 目标检测——基于yolov8和pyqt的螺栓松动检测系统
  • Spark和MapReduce之间的区别?
  • HTML5适配手机
  • GamePlay UE网络同步
  • 基于Java的智能客服系统
  • uniapp开发微信小程序实现获取“我的位置”
  • TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
  • IDEA用jformdesigner插件做管理系统MVC架构
  • Scala项目(图书管理系统)
  • 最新深度学习YoloV11训练,转化,推理,C#部署