unimport
1.0.0
Immport是一個GO靜態分析工具,可以找到不必要的導入別名。
go get -u github.com/alexkohler/unimport
與其他GO靜態Anaylsis工具(例如Golint,Go Vet)類似,可以使用一個或多個以其導入路徑命名的文件名,目錄或軟件包來調用Import。毫無疑問也支持...通配符。
unimport files/directories/packages
目前,不支持標誌。將來可能會添加一個-w標誌,以在可能的情況下自動刪除別名(類似於GOFMT的-W標誌)。
如GO的代碼評論評論中所述:
避免重命名進口,除了避免姓名碰撞;好的包裝名稱不需要重命名。如果發生碰撞,則希望重命名最本地或特定於項目的導入。
該工具將檢查是否真正需要任何導入別名(確保在沒有導入別名的情況下存在名稱碰撞)。該工具將忽略包含破折號和點的導入路徑,因為在導入特定的修訂時,這些工具通常是有用的別名。例如,在Gometalinter中,有一些導入,例如kingpin "gopkg.in/alecthomas/kingpin.v3-unstable" 。這是一個合理的導入別名,不會被標記。
在GO來源上運行unimports :
$ 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"
)歡迎拉請求!