diff --git a/.gitignore b/.gitignore index eeccf24a..0d8ca50d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ test/bin/ vendor/ dist/ .idea/ +.vscode/ # Cache *.swp diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..a150ffbe --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,124 @@ +run: + modules-download-mode: readonly + issues-exit-code: 0 + +linters-settings: + exhaustive: + default-signifies-exhaustive: false + gci: + sections: + - standard + - default + - prefix(github.com/fatedier/frp) + goconst: + min-occurrences: 5 + ignore-tests: true + godot: + scope: toplevel + exclude: + - go-sumtype:decl + - check interfaces + capital: true + godox: + keywords: + - BUG + - FIXME + - HACK + goimports: + local-prefixes: github.com/fatedier/frp + gosimple: + go: "1.18" + checks: ["all"] + lll: + line-length: 130 + tab-width: 4 + nolintlint: + allow-unused: false + allow-leading-space: false + allow-no-explanation: [] + require-explanation: true + require-specific: true + staticcheck: + go: "1.18" + checks: ["all"] + stylecheck: + go: "1.18" + checks: ["all"] + dot-import-whitelist: [] + initialisms: [] + http-status-code-whitelist: [] + unparam: + check-exported: true + unused: + go: "1.18" + whitespace: + multi-if: false + multi-func: false + tagliatelle: + +linters: + enable-all: true + disable: + # TODO: enable one by one + - govet + - goimports + - gofmt + - misspell + - ineffassign + - gci + - paralleltest + - maintidx + - unparam + - nakedret + - goconst + - wastedassign + - gosimple + - dupl + - goprintffuncname + - structcheck + - unused + - promlinter + - nestif + - errorlint + - lll + - contextcheck + - bodyclose + - whitespace + - gofumpt + - godot + - gocritic + - gocognit + - deadcode + - unconvert + - varcheck + - errchkjson + - nilnil + - thelper + - ireturn + - forbidigo + - containedctx + - tagliatelle + - cyclop + - errcheck + - exhaustivestruct + - forcetypeassert + - funlen + - gochecknoglobals + - gochecknoinits + - goerr113 + - gomnd + - gosec + - revive + - varnamelen + - wrapcheck + - noctx + - staticcheck + - stylecheck + - golint + - interfacer + - maligned + - nlreturn + - scopelint + - testpackage + - wsl + - ifshort