woodpecker/vendor/github.com/tdakkota/asciicheck/README.md
Lukas c28f7cb29f
Add golangci-lint (#502)
Initial part of #435
2021-11-14 21:01:54 +01:00

72 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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)
```