Identity est un outil d'analyse GO statique pour trouver des fautes de frappe dans les identifiants (fonctions, appels de fonction, variables, constantes, déclarations de type, packages, étiquettes), y compris les fonctions de camel, les variables, etc. Il est construit au-dessus du package Missell de Client9.
go get -u github.com/alexkohler/identypo/cmd/identypo
misspell fonctionne sur le texte brut et les commentaires. identypo fonctionne sur les identificateurs AST (IE Noms de variables, noms de fonction, etc.). De plus, identypo partage chaque identifiant de camel si nécessaire (MyIdentifierName se transforme en `` mon nom d'identifiant '') avant d'analyser si elle est correctement orthographiée. Sous le capot, identypo utilise le moteur orthographique de Misspell pour déterminer si un mot donné n'est pas orthographié correctement.
Semblable aux autres outils d'analyse statique GO (tels que Golint, GO Vet), Identity peut être invoqué avec un ou plusieurs noms de fichiers, répertoires ou packages nommés par son chemin d'importation. Identique soutient également le ... Wildcard. Par défaut, il recherchera des fautes de frappe dans chaque identifiant (fonctions, appels de fonction, variables, constantes, déclarations de type, packages, étiquettes).
identypo [flags] files/directories/packages
-i="nto,creater" ). Il s'agit d'un passhoux direct vers le package de maltraitance.Remarque: Par défaut, Identity vérifiera les fautes de frappe dans chaque identifiant (fonctions, appels de fonction, variables, constantes, déclarations de type, packages, étiquettes). Dans ce cas, aucun indicateur n'a besoin de spécification. En raison d'un manque de fréquence, il n'y a actuellement aucun drapeau pour trouver uniquement des déclarations de type, des packages ou des étiquettes.
Quelques exemples de la bibliothèque GO Standard (en utilisant le drapeau -i pour supprimer certaines non-émissions):
$ 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
}Quelques exemples sélectionnés de 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 ,
}Veuillez ouvrir un problème et / ou un PR pour toutes les fonctionnalités / bogues.
Si vous avez apprécié Identity, jetez un œil à mes autres outils statiques Anaylsis!