goimportsを使っていて、とあるライブラリのimportが勝手に消されてしまう現象に遭遇しました。goimportsは使ってないimportは消してくれるのですが、この場合はコード中で使ってるのに消されてしまう。
問題のコードはこんな感じ
例
package mypackage
import (
"fmt"
"time"
"github.com/deltam/some-library-go" // この行が消える
)
func Hoge() {
return someLibrary.SomeFunc() // ここで使ってる
}
...
どうやら プロジェクト名とパッケージ名が違う場合 は、goimportsは関係ないimport文だと判断するみたいです。
私はGo言語初心者なのですが、プロジェクト名とパッケージ名は同じにするのが作法(?)みたいですね。
とりあえず回避策。別名をつけとけばgoimportsでも使ってると判断して消さないでいてくれます。
package mypackage
import (
"fmt"
"time"
someLibrary "github.com/deltam/some-library-go" // パッケージ名と同じ別名をつける
)
func Hoge() {
return somLibrary.SomeFunc() // ここで使ってる
}
...
おわり。