From c768d677e66f98d494653a97d6b5cbeffe586e06 Mon Sep 17 00:00:00 2001 From: houseme Date: Mon, 7 Oct 2024 17:59:46 +0800 Subject: [PATCH] feat: add line length limit check --- .golangci.yml | 12 ++++++++++-- revive.toml | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 revive.toml diff --git a/.golangci.yml b/.golangci.yml index 35b2998c8de..fed3cef0b14 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -45,6 +45,7 @@ linters: - gofmt # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification - gosimple # Linter for Go source code that specializes in simplifying code - govet # Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string + - lll # Reports long lines. - misspell # Finds commonly misspelled English words in comments - nolintlint # Reports ill-formed or insufficient nolint directives - revive # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. @@ -80,6 +81,13 @@ linters-settings: ignore-words: - cancelled + # https://golangci-lint.run/usage/linters/#lll + lll: + # Max line length, lines longer will be reported. + # '\t' is counted as 1 character by default, and can be changed with the tab-width option. + # Default: 120. + line-length: 80 # 一行的长度 + # https://golangci-lint.run/usage/linters/#revive # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md revive: @@ -89,11 +97,11 @@ linters-settings: - name: atomic - name: line-length-limit severity: error - arguments: [ 380 ] + arguments: [ 80 ] - name: unhandled-error severity: warning disabled: true - arguments: [] + arguments: ["fmt.Printf", "myFunction", "log.Printf","fmt.Println","bytes.Buffer.WriteString"] - name: var-naming severity: warning disabled: true diff --git a/revive.toml b/revive.toml new file mode 100644 index 00000000000..2a85483d75d --- /dev/null +++ b/revive.toml @@ -0,0 +1,52 @@ +ignoreGeneratedHeader = false +severity = "warning" +confidence = 0.8 +errorCode = 0 +warningCode = 0 + +[[rule]] +name = "missing-method-doc" +severity = "error" +message = "Method is missing a documentation comment." + +[rule.missing-method-doc] +match = ''' +^\s*func\s+\w+\s*\(.*\)\s*\{$ +''' + +[rule.missing-method-doc.exclude] +expression = ''' +^\s*func\s+\w+\s*\(.*\)\s*\{$ +''' + +[rule.blank-imports] +[rule.context-as-argument] +[rule.context-keys-type] +[rule.dot-imports] +[rule.error-return] +[rule.error-strings] +[rule.error-naming] +[rule.exported] +[rule.if-return] +[rule.increment-decrement] +[rule.line-length-limit] + severity = "error" + arguments = [80] +[rule.var-naming] + arguments = [["ID","URL","IP","HTTP","JSON","API","UID","Id","Api","Uid","Http","Json","Ip","Url"], ["VM"]] +[rule.var-declaration] +[rule.package-comments] +[rule.range] +[rule.receiver-naming] +[rule.time-naming] +[rule.unexported-return] +[rule.indent-error-flow] +[rule.errorf] +[rule.empty-block] +[rule.superfluous-else] +[rule.unused-parameter] +[rule.unreachable-code] +[rule.redefines-builtin-id] +[rule.waitgroup-by-value] + severity = "warning" + disable = false