Unimport เป็นเครื่องมือวิเคราะห์แบบคงที่เพื่อค้นหานามแฝงการนำเข้าที่ไม่จำเป็น
go get -u github.com/alexkohler/unimport
เช่นเดียวกับเครื่องมือ Anaylsis แบบคงที่อื่น ๆ (เช่น Golint, Go Vet), Unimport สามารถเรียกใช้กับชื่อไฟล์หนึ่งชื่อหรือมากกว่าหนึ่งรายการไดเรกทอรีหรือแพ็คเกจที่ชื่อโดยเส้นทางนำเข้า Unimport ยังรองรับ ... Wildcard
unimport files/directories/packages
ปัจจุบันไม่รองรับธง อาจมีการเพิ่มธง -w ในอนาคตเพื่อลบนามแฝงโดยอัตโนมัติหากเป็นไปได้ (คล้ายกับธง -w ของ GoFMT)
ตามที่ระบุไว้ในความคิดเห็นรีวิวรหัสของ GO: ความคิดเห็น:
หลีกเลี่ยงการเปลี่ยนชื่อนำเข้ายกเว้นเพื่อหลีกเลี่ยงการชนกันของชื่อ ชื่อแพ็คเกจที่ดีไม่ควรต้องเปลี่ยนชื่อ ในกรณีที่มีการชนกันต้องการเปลี่ยนชื่อการนำเข้าเฉพาะท้องถิ่นหรือโครงการเฉพาะโครงการ
เครื่องมือนี้จะตรวจสอบว่าจำเป็นต้องมีนามแฝงนำเข้าอย่างแท้จริงหรือไม่ (โดยมั่นใจว่ามีการปะทะกันของชื่อที่จะมีอยู่โดยไม่มีนามแฝงนำเข้า) เครื่องมือนี้ จะ เพิกเฉยต่อพา ธ นำเข้าที่มีขีดเส้นประและจุดต่าง ๆ ซึ่งเป็นนามแฝงที่มีประโยชน์โดยทั่วไปในขณะที่นำเข้าการแก้ไขเฉพาะ ตัวอย่างเช่นใน gometalinter มีการนำเข้าบางอย่างเช่น kingpin "gopkg.in/alecthomas/kingpin.v3-unstable" นี่เป็นนามแฝงการนำเข้าที่สมเหตุสมผลและจะไม่ถูกตั้งค่าสถานะ
รัน 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"
)ยินดีต้อนรับการร้องขอ!