Identypo ist ein GO -statischer Analyse -Tool, um Tippfehler in Kennungen (Funktionen, Funktionsaufrufe, Variablen, Konstanten, Typdeklarationen, Pakete, Beschriftungen) einschließlich Kamelcased -Funktionen, Variablen usw. zu finden.
go get -u github.com/alexkohler/identypo/cmd/identypo
misspell arbeitet mit rohen Text und Kommentaren. identypo arbeitet mit AST -Kennungen (dh Variablennamen, Funktionsnamen usw.). Darüber hinaus spaltet identypo jede camelcased -Kennung bei Bedarf auf (Myidentifiername wird in "My Identifier Name"), bevor sie analysiert, ob es korrekt geschrieben ist oder nicht. Unter der Motorhaube verwendet identypo die Beschwerdeschlüsselmotor von Meltspell, um festzustellen, ob kein bestimmtes Wort korrekt geschrieben ist.
Ähnlich wie bei anderen GO -Tools zur statischen Analyse (wie Golint, Go -Tierarzt) kann Identypo mit einem oder mehreren Dateinamen, Verzeichnissen oder Paketen aufgerufen werden, die von seinem Importpfad bezeichnet werden. Identypo unterstützt auch die ... Wildcard. Standardmäßig werden in jeder Kennung nach Tippfehler gesucht (Funktionen, Funktionsaufrufe, Variablen, Konstanten, Typdeklarationen, Pakete, Beschriftungen).
identypo [flags] files/directories/packages
-i="nto,creater" ). Dies ist ein direkter Durchgang zum Misspell -Paket.Hinweis: Standardmäßig prüft Identypo in jeder Kennung auf Tippfehler (Funktionen, Funktionsaufrufe, Variablen, Konstanten, Typdeklarationen, Pakete, Beschriftungen). In diesem Fall müssen keine Flaggen angegeben. Aufgrund mangelnder Frequenz gibt es derzeit keine Flags, die nur Typdeklarationen, Pakete oder Etiketten finden.
Einige Beispiele aus der Go -Standardbibliothek (unter Verwendung des -i -Flaggens zur Unterdrückung einiger Nichtbücher):
$ identypo -i= " rela,nto,onot,alltime " ./...
cmd/trace/goroutines.go:169 " dividened " should be dividend in dividened
cmd/trace/goroutines.go:173 " dividened " should be dividend in dividened
cmd/trace/goroutines.go:175 " dividened " should be dividend in dividened
cmd/trace/goroutines.go:179 " dividened " should be dividend in dividened
cmd/trace/annotations.go:1162 " dividened " should be dividend in dividened
cmd/trace/annotations.go:1166 " dividened " should be dividend in dividened
cmd/trace/annotations.go:1168 " dividened " should be dividend in dividened
cmd/trace/annotations.go:1172 " dividened " should be dividend in dividened
crypto/x509/verify.go:208 " Comparisions " should be Comparisons in MaxConstraintComparisions
crypto/x509/verify.go:585 " Comparisions " should be Comparisons in MaxConstraintComparisions // cmd/trace/annotations.go:1162 dividened" should be dividend in dividened
"percent" : func ( dividened , divisor int64 ) template. HTML {
// crypto/x509/verify.go:208 "Comparisions" should be Comparisons in MaxConstraintComparisions
type VerifyOptions struct {
...
MaxConstraintComparisions int
}Einige ausgewählte Beispiele von Kubernetes:
$ identypo ./...
cmd/kubeadm/app/util/apiclient/wait.go:51 " inital " should be initial in initalTimeout
pkg/apis/certificates/types.go:125 " Committment " should be Commitment in UsageContentCommittment
test/e2e_node/eviction_test.go:51 " Dissapear " should be Disappear in pressureDissapearTimeout
pkg/scheduler/scheduler_test.go:705 " Satsified " should be Satisfied in FindUnboundSatsified
pkg/kubectl/cmd/scale.go:265 " Psuedo " should be Pseudo in JobPsuedoScaler // cmd/kubeadm/app/util/apiclient/wait.go:51 "inital" should be initial in initalTimeout
WaitForHealthyKubelet ( initalTimeout time . Duration , healthzEndpoint string ) error
// pkg/apis/certificates/types.go:125 "Committment" should be Commitment in UsageContentCommittment
UsageContentCommittment KeyUsage = "content commitment"
// test/e2e_node/eviction_test.go:51 "Dissapear" should be Disappear in pressureDissapearTimeout
const (
...
pressureDissapearTimeout = 1 * time . Minute
...
)
// pkg/scheduler/scheduler_test.go:705 "Satsified" should be Satisfied in FindUnboundSatsified
volumeBinderConfig: & persistentvolume. FakeVolumeBinderConfig {
...
FindUnboundSatsified : true ,
...
}
// pkg/kubectl/cmd/scale.go:265 "Psuedo" should be Pseudo in JobPsuedoScaler
scaler := scalejob. JobPsuedoScaler {
JobsClient : jobsClient ,
}Bitte öffnen Sie ein Problem und/oder eine PR für Funktionen/Fehler.
Wenn Sie Identypo genossen haben, schauen Sie sich meine anderen statischen Anaylsis -Tools an!