首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能告诉goimport更喜欢一个包呢?

我怎样才能告诉goimport更喜欢一个包呢?
EN

Stack Overflow用户
提问于 2016-12-06 20:03:37
回答 2查看 1.4K关注 0票数 6

此文件:

代码语言:javascript
复制
package foo

func errorer() error {
    return errors.New("Whoops")
}

将通过goimports转换为以下格式

代码语言:javascript
复制
package foo

import "errors"

func errorer() error {
    return errors.New("Whoops")
}

但是,我希望在这个项目中的任何地方都使用github.com/pkg/errors包,而不是errors包。

我可以告诉goimports始终首选github.com/pkg/errors包吗?

EN

回答 2

Stack Overflow用户

发布于 2016-12-06 20:40:30

在您的例子中,使用.goimportsignore是行不通的,因为您要忽略的包在标准库中,而不在GOPATH下。

-local标志也不起作用,因为这两个包具有相同的名称,因此仍然会选择errors而不是pkg/errors

您可以选择使用golang.org/x/tools/imports编写您自己的goimports版本

或者,另一种不方便的方法是确保在新文件中第一次调用error.Wrap或其他函数之一,而不是调用errors.New,这样goimports就可以识别pkg/errors

票数 3
EN

Stack Overflow用户

发布于 2016-12-06 20:26:42

我还没有尝试过,但根据文档,网址为:https://github.com/golang/tools/blob/master/cmd/goimports/doc.go

要排除$GOPATH中的目录,使其不被扫描Go文件,goimports将遵守位于$GOPATH/src/.goimportsignore的配置文件,该配置文件可能包含空行、注释行(以‘#’开头)或指定与配置文件相关的目录的行,以便在扫描时忽略。不允许使用globbing或regex模式。使用"-v“详细标志来验证它是否正常工作,并查看goimports正在做什么。

因此,您可以尝试排除错误目录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40994957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档