Unimport - это инструмент для статического анализа Go, чтобы найти ненужные псевдонимы импорта.
go get -u github.com/alexkohler/unimport
Подобно другим инструментам Go Static Anaylsis (например, Golint, Go Vet), Unimport может быть вызван с помощью одного или нескольких имен файлов, каталогов или пакетов, названных его путем импорта. Unimport также поддерживает ... подстановочный знак.
unimport files/directories/packages
В настоящее время флаг не поддерживается. Флаг -w может быть добавлен в будущем для автоматического удаления псевдонимов, где это возможно (аналогично флагу GOFMT -W).
Как отмечено в обзоре кода Go. Комментарии:
Избегайте переименования импорта, кроме как избежать столкновения имени; Хорошие имена пакетов не должны требовать переименования. В случае столкновения предпочитают переименовать самый локальный или специфичный для проекта импорт.
Этот инструмент проверит, действительно ли какие -либо импортные псевдонимы (гарантируя столкновение имени, которое существовало бы без псевдонима импорта). Этот инструмент будет игнорировать пути импорта, содержащие тире и точки, так как они, как правило, полезные псевдонимы при импорте конкретной редакции. Например, в GometalInter есть некоторые импорты, такие как kingpin "gopkg.in/alecthomas/kingpin.v3-unstable" . Это разумный псевдоним импорта и не будет помечен.
Запуск unimports на источнике Go:
$ unimport $GOROOT/src/...
cmd/go/pkg.go:18 unnecessary import alias pathpkg
go/build/build.go:19 unnecessary import alias pathpkg
go/internal/gcimporter/gcimporter.go:23 unnecessary import alias exact
os/pipe_test.go:14 unnecessary import alias osexec
os/os_windows_test.go:10 unnecessary import alias osexec
Ниже приведены некоторые из ненужных псевдонимов импорта, которые он обнаружил:
// go/internal/gcimporter/gcimporter.go
import (
"bufio"
"errors"
"fmt"
"go/build"
"go/token"
"io"
"io/ioutil"
"os"
"path/filepath"
"sort"
"strconv"
"strings"
"text/scanner"
exact "go/constant"
"go/types"
)
// os/pipe_test.go.go
import (
"fmt"
"internal/testenv"
"os"
osexec "os/exec"
"os/signal"
"syscall"
"testing"
)Получите запросы!