此文件:
package foo
func errorer() error {
return errors.New("Whoops")
}
将使用goimports
:
package foo
import "errors"
func errorer() error {
return errors.New("Whoops")
}
但是,我想在此项目中到处使用github.com/pkg/errors
软件包,而不是errors
软件包。
我可以告诉goimports
总是喜欢github.com/pkg/errors
软件包吗?
使用.goimportsignore
在您的情况下无法使用,因为您要忽略的软件包在标准lib中而不是Gopath中。
-local
标志也无法使用,因为两个软件包都具有相同的名称,因此errors
仍将通过pkg/errors
选择。
您的选项是使用golang.org/x/tools/imports
goimports
版本或另一种不便的方法是确保您在新文件中首次致电error.Wrap
或其他功能之一,而不是errors.New
,以便goimports
可以识别pkg/errors
。
我没有尝试过,但是根据文档:https://github.com/golang/tools/blob/master/cmd/goimports/doc.go
在您的$ gopath中排除目录之外的目录 文件,Goimports尊重一个配置文件 $ gopath/src/.gaimportsignore可能包含空白行,评论 行(以'#'开头)或将目录命名为 扫描时要忽略的配置文件。没有球形或言论 允许模式。使用" -v"详细标志来验证其工作 看看Goimports在做什么。
因此,您可以尝试排除错误目录。