2016-12-06 11 views
4

このファイル:goimportsに、あるパッケージを別のパッケージより優先させるようにするにはどうすればよいですか?

package foo 

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

goimportsでこれに変換されます:

package foo 

import "errors" 

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

しかし、私はerrorsパッケージをこのプロジェクトではどこでもgithub.com/pkg/errorsパッケージを使用したい、とではないと思います。

goimportsにはいつもgithub.com/pkg/errorsパッケージが好きだと言うことができますか?

+0

私はあなたができるとは思わない。単にgithub.com/pkg/errorsを "手動で"インポートしてください。 – Volker

+0

'goimports'と間違ったパッケージのインポートの世界へようこそ。 'templates'になるまで待ってください!実際には、この自動輸入管理から離れて、あなた自身でパッケージを学んでください - 後で私たちに感謝します。さらに、IDE(VIM、Atom、Sublime、VS Code、VS、IntelliJ - iveがすべて使用されています)で適切なインテリセンスを得るためには、まずImportを指定する必要があります!* – eduncan911

答えて

1

私はこれを試していないが、でドキュメントによると: https://github.com/golang/tools/blob/master/cmd/goimports/doc.go

ゴー ファイルがスキャンされてからの$ GOPATH内のディレクトリを除外するには、goimportsは/ $ GOPATHで設定ファイルを尊重src/.goimportsignoreには、空白行、コメント 行( '#'で始まる行)、または に関連するディレクトリ名の行が含まれ、スキャン時に無視されます。グロブまたは正規表現はありません。 パターンが許可されています。 "-v"詳細フラグを使用して、動作していることを確認してください とgoimportsが何をしているかを見てください。

エラーディレクトリを除外することができます。

+0

これらはGOPATH、 **相対的**という名前のディレクトリを設定に追加する ' –

3

あなたが無視したいパッケージはGOPATHではなく標準のlibにありますので、.goimportsignoreを使用するとうまくいかない場合があります。

-localフラグも両方のパッケージの名前が同じであるため、errorsがまだpkg/errorsよりも選択されるため、機能しません。

あなたのオプションは、golang.org/x/tools/imports

それとも別の不便な方法は、あなたがそうerrors.Newではなく、新しいファイルにerror.Wrapや他の機能の一つの第一回呼び出すことを確認することです使用goimportsの独自のバージョンを書くことですgoimportspkg/errorsを識別できます。

関連する問題