问题标签 [goimports]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何禁用删除未使用的导入?
我使用goimports
自动重新格式化我的代码并使其干净并保持导入顺序。但有时它与 IDE 自动保存一起以一种不舒服的方式工作。就像在这种情况下:
我想在我的代码中添加新包。
然后我安装它
dep ensure
并刷新我的 IDE 缓存。我可以轻松地使用带有 IDE 自动完成和导航的包。
goimports
IDE会发生什么?
- 我添加新包
- 为了运行,
dep ensure
我必须保存一个文件 goimports
找到未使用的包并将其从导入中删除。不好。
解决方法:
A. 手动添加新包dep ensure -add %packagename%
B. 禁用goimports
并移动到gofmt
-马马虎虎。
C. 不要在保存时自动格式化代码 - 不受欢迎。
如何设置更方便?
PS不确定标签godeps
,但DEP
在这里肯定是错误的。
go - 如何强制 VSCode 要求手动选择 goimports 匹配多个具有相同名称的包?
我刚刚遇到了使用 Go Iris 框架编写小型 Web 服务的问题。Iris 几乎没有用于 HTTP 请求错误处理的有用包。
也就是说,我想使用“github.com/kataras/iris/middleware/logger”和 “github.com/kataras/iris/middleware/recover”但是当我开始输入 app.Use(logger....) VSCode auto导入的“ github.com/hashicorp/consul/logger ”也在我的路径中。
简单地复制粘贴正确的路径就可以解决这个问题,但是有没有办法强制 VSCode 在多个包名称匹配的情况下进行手动选择,甚至在这些情况下完全禁用 goimports。
下面的例子:
go - goimports 未检测到本地包
我的 golang 项目在不同的文件夹中有几个包,这些包变得有点大。我一直在尝试创建单独的包,但没有被 goimports 检测到
我的目录是这样的,
在我的 math.go 文件夹中,我有包实用程序
但是当我尝试做import "application/utility"
或尝试在我的 main.go 文件(在应用程序文件夹中)中包含 math.go 文件中的公共函数时,我得到未定义的......
我究竟做错了什么?
go - 如何通过“go get”使用仅二进制包
go get
我的二进制包从命令安装了一些依赖项。在构建并创建源代码之后//go:binary-only-package
有一些错误,例如:
如何导入仅二进制包?
go - 如何以编程方式检索声明给定类型的包路径?
我正在寻找一种方法来检索本地安装的包,其中包含给定类型的声明和默认包名称。
IE:
我可以尝试检索所有已安装的包,并在每个查找声明时通过 AST,但如果有一个解决方案可以更有效地做到这一点,同时还提供对 go 模块的支持,我想使用它。
这样做的原因是为了改进代码生成工具。这个想法是让用户提供类型的名称,并让工具识别最有可能的候选者,就像 goimports 添加缺失的导入一样。
go - 使用标准库的 fork 来修补 go/ast
我修复了一个小错误go/ast
(请参阅以下Github 问题)。我想已经在我正在开发的项目中使用我的修复。包含该修复的 fork 可在https://github.com/ec-m/go上找到。
首先,我尝试了以下导入:
和
这导致了各种go get
错误,例如module github.com/ec-m/go/src@upgrade found (v0.0.0-20200626183851-7b0f14cb18cb), but does not contain package github.com/ec-m/go/src/go
.
然后,我按照https://github.com/golang/go/wiki/Modules#when-should-i-use-the-replace-directive中概述的使用分叉依赖项的常规方法, 并在各种问题中提到,f . 前任。如何修复解析 go.mod 模块将其路径声明为 "x" 但需要为 "y"。
具体来说,我在我的go.mod
这和其他一些尝试(std
而不是go/ast
等)没有奏效。经过一番研究,我发现替换 Go 的标准库是不可能的(参见这个Github 提案)。
我还有什么其他选择可以使用我的 Go 标准库的分支?我希望该方法尽可能简单,以避免我项目的未来用户出现依赖问题。
go - 如何让 Go 搜索 GOROOT 之外的导入
我正在将 dep 项目迁移到 go 模块中,并且该项目中的一些 Go 文件导入了 proto 文件,但是当我执行时go mod tidy
,它说找不到 proto 文件所在的包。项目结构:
我在repository.go中像这样导入
我有这个:
如何导入这些文件?
hyperledger-fabric - 文件包含 goimports 错误
我正在尝试按照本教程为 hyperledger fabric 2.2.1 构建开发环境,并且我从这里获得了源代码。我已经安装了开发工具,没有任何问题,但是在验证构建环境的过程中,我遇到了 goimports 错误。当我make basic-checks
为执行许可证、拼写、尾随空格和 linter 的基本检查而运行时,我收到bccsp/pkcs11/pkcs11_test.go
文件的 goimports 错误。以下是我对上述命令的日志。
所有文件都被排除在许可证头之外构建 github.com/client9/misspell/cmd/misspell -> mispell fatal: bad revision 'HEAD' fatal: ambiguous argument 'HEAD^..HEAD': unknown revision or path not in the working树。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]' 检查更改的 go 文件是否存在拼写错误... xargs: mispell: No such file or directory spell checker通过检查 go:generate parent path references 致命:不明确的参数“HEAD”:未知修订或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]' Checking trailing spaces ... DEP: Checking for dependency issues.. ./scripts/check_deps.sh构建 golang.org/x/tools/cmd/goimports -> goimports LINT:
我无法在该文件中找到问题所在。
go - 需要帮助理解 Golangs 包和模块系统的困惑
老实说,Golang 的包和模块系统是我处理过的最令人恼火和不必要的复杂的事情。我不知道是否只是我不理解,缺乏关于这个主题的信息,或者只是一般的 golang。
我创建了一个 Go 项目,我还不想发布或上传到 GitHub。它不在我设置的 GOPATH 内,因为根据我对引入模块的理解,您可以在 GOPATH 之外对项目进行编码。项目布局是这样的
我test.go
希望我能做类似的事情,import "project/pkg1"
但我不明白如何让它工作。即使我test.go
在项目内部移动并输入,import "/pkg1"
我也会收到Cannot import absolute path
错误。
我真的不想一直在里面编写我所有的 go 项目%GOPATH%/src
,这样做似乎很荒谬。
同样,这可能只是我不理解。我来自 pythonic 背景,我可以创建一个setup.py
文件,在运行后将我的项目安装到 python 的路径以供将来使用。任何有关此的帮助,无论是指向教程或网站的链接,都将不胜感激,谢谢。
go - 如何在 golang 中导入生成的 SDK?
我使用openapi-generator分别生成多个 SDK 并将其放在同一个父目录中:
我希望能够bar-api
在我的客户端代码中导入。最初有 bar-apigo.mod
生成为:
但我无法修复客户端代码中的导入:
所以我所做的是:
即,创建sdks/go.mod
:
并手动编辑 bar-apigo.mod
以:
有没有更好的方法来解决它?这个似乎工作,但这个替换看起来有点hacky。