标签: goimports

如何使用 GolangCI 删除未使用的导入

我使用 makefile 在 GolangCI 工具中启用了 goimports,它能够发现未使用的导入,但不会自动删除它们。如何让我的 golangCI 工具自动删除未使用的导入?

下面是我的 golangci linting 的 makefile 命令,我使用的是标签--fix

##@ Linting
lint:
    @echo "lint via golangci-lint in " $(OUTPUT_DIR)/src
    docker run --rm -v $(PWD):/local \
        -w /local golangci/golangci-lint:latest \
        golangci-lint run --fix --config .golangci.yaml $(OUTPUT_DIR)/src/*.go
Run Code Online (Sandbox Code Playgroud)

下面是我的 golangci.yaml 文件,我设置remove-unused为 true :

run:
  timeout: 5m
  modules-download-mode: readonly

linters:
  enable:
    - errcheck
    - goimports
    - revive
    - govet
    - staticcheck

  # Configuration for the goimports linter
  goimports:
    # Set to true to remove unused …
Run Code Online (Sandbox Code Playgroud)

makefile go goimports golangci-lint

5
推荐指数
1
解决办法
1349
查看次数

如何在 Go 中删除不需要的导入别名?

我在网络https://github.com/deckarep/golang-set中发现了一个非常有用的 Go 库,它试图将 Python 集移植到 Go。

感谢 Visual Studio Code,我最终通过导入库import "github.com/deckarep/golang-set"并在代码中调用函数来使其正常工作:

mySet := mapset.NewSet()
Run Code Online (Sandbox Code Playgroud)

VS Code 自动识别别名并替换 import 指令:

import mapset "github.com/deckarep/golang-set"
Run Code Online (Sandbox Code Playgroud)

然而,作为一个发现这些别名令人困惑的人,我试图将其删除,但这样做后,VSCode 将其从 import 语句和我的代码中删除了。VS Code 然后告诉我:

未声明的名称:NewSet编译器(UndeclaredName)

NewSet(...)的包名称也是package mapset。所以我想我可以简单地删除它。但这不起作用。

我还尝试与其他第 3 方包类似地工作,并通过存储库的名称调用函数:

mySet := golang-set.NewSet()
Run Code Online (Sandbox Code Playgroud)

这也会导致错误。由于连字符的原因,这里不可能删除别名,或者我正在监督其他事情?

go visual-studio-code goimports

-2
推荐指数
1
解决办法
1956
查看次数