英文:
How do you remove unused imports using GolangCI
问题
我在我的 makefile 中启用了 goimports,通过使用 --fix
标签,我的 GolangCI 工具能够发现未使用的导入,但不能自动删除它们。如何使我的 golangCI 工具能够自动删除未使用的导入?
以下是我在 makefile 中用于 golangci 代码检查的命令,我使用了 --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
以下是我的 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 imports automatically
remove-unused: true
# Configuration for the revive linter
revive:
# Add any custom rules you want to use
rules:
- id: 'import-shadowing'
severity: warning
match: '\bimport\s+\.\s+\S+'
message: 'Importing packages using dot notation (.) is discouraged.'
issues:
exclude-use-default: false
max-issues-per-linter: 0
max-same-issues: 0
希望对你有所帮助!
英文:
I enabled goimports in my GolangCI tool using my makefile and it's able to spot unused imports but is not automatically remove them. How do I enable my golangCI tool to remove the unused imports automatically?
Below is my makefile command for the golangci linting, I am using the --fix
tag:
##@ 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
Below is my golangci.yaml file, I am setting remove-unused
to 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 imports automatically
remove-unused: true
# Configuration for the revive linter
revive:
# Add any custom rules you want to use
rules:
- id: 'import-shadowing'
severity: warning
match: '\bimport\s+\.\s+\S+'
message: 'Importing packages using dot notation (.) is discouraged.'
issues:
exclude-use-default: false
max-issues-per-linter: 0
max-same-issues: 0
答案1
得分: 3
我不确定 golangci-lint
是否可以进行原地修复。
最简单的方法是使用 goimports
工具来删除未使用的导入。
$ go install golang.org/x/tools/cmd/goimports@latest
使用 -w
选项调用它,可以直接在原地修复你的导入,例如:
$ goimports -w sourcefile.go
英文:
I'm not sure if golangci-lint
can do in-place fixes.
The easiest way to remove unused imports would be to use the goimports
tool.
$ go install golang.org/x/tools/cmd/goimports@latest
Call it with the "-w" option to fix your imports directly in-place, e.g.
$ goimports -w sourcefile.go
答案2
得分: 1
我非常喜欢使用goimports-reviser。我觉得它比goimports
更好,因为它不仅在使用-rm-unused
标志调用时删除未使用的导入,还重新分组和排序导入。默认情况下,它将标准库、外部库和本地库导入分别放在不同的组中,并且还支持自定义公司前缀,如果你想为你的组织单独创建一个组。
英文:
I'm very happy using goimports-reviser. I find it superior to goimports
as it not only removes unused imports when called with -rm-unused
fla,g but also re-groups and sorts imports. By default, it arranges std, external and local imports in separate groups and there's also support for custom company prefix if you would like a separate group for your organization.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论