woodpecker/vendor/github.com/blizzy78/varnamelen
6543 56a854fe14
Update deps (#789)
* update github.com/docker/cli

* update github.com/docker/distribution

* update github.com/docker/docker

* update github.com/gin-gonic/gin

* update github.com/golang-jwt/jwt/v4

* update github.com/golangci/golangci-lint

* update github.com/gorilla/securecookie

* update github.com/mattn/go-sqlite3

* update github.com/moby/moby

* update github.com/prometheus/client_golang

* update github.com/xanzy/go-gitlab
2022-02-24 17:33:24 +01:00
..
.editorconfig Update deps (#789) 2022-02-24 17:33:24 +01:00
.gitignore Add linter bidichk to prevent malicios utf8 chars (#516) 2021-11-16 21:07:53 +01:00
.golangci.yml Update deps (#789) 2022-02-24 17:33:24 +01:00
flags.go Update deps (#789) 2022-02-24 17:33:24 +01:00
go.mod Update deps (#789) 2022-02-24 17:33:24 +01:00
go.sum Update deps (#789) 2022-02-24 17:33:24 +01:00
LICENSE Add linter bidichk to prevent malicios utf8 chars (#516) 2021-11-16 21:07:53 +01:00
README.md Update deps (#789) 2022-02-24 17:33:24 +01:00
varnamelen.code-workspace Add linter bidichk to prevent malicios utf8 chars (#516) 2021-11-16 21:07:53 +01:00
varnamelen.go Update deps (#789) 2022-02-24 17:33:24 +01:00

GoDoc

varnamelen

A Go Analyzer checking that the length of a variable's name matches its usage scope.

A variable with a short name can be hard to use if the variable is used over a longer span of lines of code. A longer variable name may be easier to comprehend.

The analyzer can check variable names, method receiver names, as well as named return values.

Conventional Go parameters such as ctx context.Context or t *testing.T will always be ignored.

Example output

test.go:4:2: variable name 'x' is too short for the scope of its usage (varnamelen)
        x := 123
        ^
test.go:6:2: variable name 'i' is too short for the scope of its usage (varnamelen)
        i := 10
        ^

golangci-lint Integration

varnamelen is integrated into golangci-lint (though it may not always be the most recent version.)

Example configuration for golangci-lint:

linters-settings:
  varnamelen:
    # The longest distance, in source lines, that is being considered a "small scope." (defaults to 5)
    # Variables used in at most this many lines will be ignored.
    max-distance: 5
    # The minimum length of a variable's name that is considered "long." (defaults to 3)
    # Variable names that are at least this long will be ignored.
    min-name-length: 3
    # Check method receiver names. (defaults to false)
    check-receiver: false
    # Check named return values. (defaults to false)
    check-return: false
    # Ignore "ok" variables that hold the bool return value of a type assertion. (defaults to false)
    ignore-type-assert-ok: false
    # Ignore "ok" variables that hold the bool return value of a map index. (defaults to false)
    ignore-map-index-ok: false
    # Ignore "ok" variables that hold the bool return value of a channel receive. (defaults to false)
    ignore-chan-recv-ok: false
    # Optional list of variable names that should be ignored completely. (defaults to empty list)
    ignore-names:
      - err
    # Optional list of variable declarations that should be ignored completely. (defaults to empty list)
    # Entries must be in the form of "<variable name> <type>" or "<variable name> *<type>" for
    # variables, or "const <name>" for constants.
    ignore-decls:
      - c echo.Context
      - t testing.T
      - f *foo.Bar
      - e error
      - i int
      - const C

Standalone Usage

The cmd/ folder provides a standalone command line utility. You can build it like this:

go build -o varnamelen ./cmd/

Usage

varnamelen: checks that the length of a variable's name matches its scope

Usage: varnamelen [-flag] [package]

A variable with a short name can be hard to use if the variable is used
over a longer span of lines of code. A longer variable name may be easier
to comprehend.

Flags:
  -V	print version and exit
  -all
    	no effect (deprecated)
  -c int
    	display offending line with this many lines of context (default -1)
  -checkReceiver
    	check method receiver names
  -checkReturn
    	check named return values
  -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
  -ignoreChanRecvOk
    	ignore 'ok' variables that hold the bool return value of a channel receive
  -ignoreDecls value
    	comma-separated list of ignored variable declarations
  -ignoreMapIndexOk
    	ignore 'ok' variables that hold the bool return value of a map index
  -ignoreNames value
    	comma-separated list of ignored variable names
  -ignoreTypeAssertOk
    	ignore 'ok' variables that hold the bool return value of a type assertion
  -json
    	emit JSON output
  -maxDistance int
    	maximum number of lines of variable usage scope considered 'short' (default 5)
  -memprofile string
    	write memory profile to this file
  -minNameLength int
    	minimum length of variable name considered 'long' (default 3)
  -source
    	no effect (deprecated)
  -tags string
    	no effect (deprecated)
  -trace string
    	write trace log to this file
  -v	no effect (deprecated)

License

This package is licensed under the MIT license.