73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
|
# asciicheck [![Go Report Card](https://goreportcard.com/badge/github.com/tdakkota/asciicheck)](https://goreportcard.com/report/github.com/tdakkota/asciicheck) [![codecov](https://codecov.io/gh/tdakkota/asciicheck/branch/master/graph/badge.svg)](https://codecov.io/gh/tdakkota/asciicheck) ![Go](https://github.com/tdakkota/asciicheck/workflows/Go/badge.svg)
|
|||
|
Simple linter to check that your code does not contain non-ASCII identifiers
|
|||
|
|
|||
|
# Install
|
|||
|
|
|||
|
```
|
|||
|
go get -u github.com/tdakkota/asciicheck/cmd/asciicheck
|
|||
|
```
|
|||
|
|
|||
|
# Reason to use
|
|||
|
So, do you see this code? Looks correct, isn't it?
|
|||
|
|
|||
|
```go
|
|||
|
package main
|
|||
|
|
|||
|
import "fmt"
|
|||
|
|
|||
|
type TеstStruct struct{}
|
|||
|
|
|||
|
func main() {
|
|||
|
s := TestStruct{}
|
|||
|
fmt.Println(s)
|
|||
|
}
|
|||
|
```
|
|||
|
But if you try to run it, you will get an error:
|
|||
|
```
|
|||
|
./prog.go:8:7: undefined: TestStruct
|
|||
|
```
|
|||
|
What? `TestStruct` is defined above, but compiler thinks diffrent. Why?
|
|||
|
|
|||
|
**Answer**:
|
|||
|
Because `TestStruct` is not `TеstStruct`.
|
|||
|
```
|
|||
|
type TеstStruct struct{}
|
|||
|
^ this 'e' (U+0435) is not 'e' (U+0065)
|
|||
|
```
|
|||
|
|
|||
|
# Usage
|
|||
|
asciicheck uses [`singlechecker`](https://pkg.go.dev/golang.org/x/tools/go/analysis/singlechecker) package to run:
|
|||
|
|
|||
|
```
|
|||
|
asciicheck: checks that all code identifiers does not have non-ASCII symbols in the name
|
|||
|
|
|||
|
Usage: asciicheck [-flag] [package]
|
|||
|
|
|||
|
|
|||
|
Flags:
|
|||
|
-V print version and exit
|
|||
|
-all
|
|||
|
no effect (deprecated)
|
|||
|
-c int
|
|||
|
display offending line with this many lines of context (default -1)
|
|||
|
-cpuprofile string
|
|||
|
write CPU profile to this file
|
|||
|
-debug string
|
|||
|
debug flags, any subset of "fpstv"
|
|||
|
-fix
|
|||
|
apply all suggested fixes
|
|||
|
-flags
|
|||
|
print analyzer flags in JSON
|
|||
|
-json
|
|||
|
emit JSON output
|
|||
|
-memprofile string
|
|||
|
write memory profile to this file
|
|||
|
-source
|
|||
|
no effect (deprecated)
|
|||
|
-tags string
|
|||
|
no effect (deprecated)
|
|||
|
-trace string
|
|||
|
write trace log to this file
|
|||
|
-v no effect (deprecated)
|
|||
|
```
|