feat: update golangci-lint config

This commit is contained in:
2025-11-11 20:10:47 +08:00
parent 78b6f9e6c5
commit 8de75b7faf
3 changed files with 273 additions and 310 deletions
+26 -3
View File
@@ -6,7 +6,30 @@
set -e set -e
OUTPUT_DIR=${1:-./output} if [ -z $GOOS ]; then
echo "GOOS is not set"
exit 1
fi
if [ -z $GOARCH ]; then
echo "GOARCH is not set"
exit 1
fi
mkdir -p $OUTPUT_DIR/$GOOS-$GOARCH OUTPUT_DIR=${1:-./output/$GOOS-$GOARCH}
go build -o $OUTPUT_DIR/$GOOS-$GOARCH/server ./cmd/
mkdir -p $OUTPUT_DIR/
go build -o $OUTPUT_DIR/server ./cmd/
if [ -d ./conf ]; then
mkdir -p $OUTPUT_DIR/conf/
cp -r ./conf/* $OUTPUT_DIR/conf/
fi
if [ -d ./scripts ]; then
mkdir -p $OUTPUT_DIR/scripts/
cp -r ./scripts/* $OUTPUT_DIR/scripts/
fi
if [ -f ./scripts/Makefile ]; then
cp ./scripts/Makefile $OUTPUT_DIR/
fi
+246 -306
View File
@@ -1,313 +1,253 @@
version: "2"
run: run:
tests: false tests: false
timeout: 1m
linters: linters:
default: none
enable: enable:
- govet
- errcheck
- staticcheck
- ineffassign
- typecheck
- exportloopref
- bodyclose - bodyclose
- gofmt - errcheck
- errorlint
- govet
- ineffassign
- misspell - misspell
- gosimple
- stylecheck
- revive - revive
- errorlint # finds code that will cause problems with the error wrapping scheme introduced in Go 1.13 - staticcheck
disable-all: true settings:
linters-settings: errcheck:
errcheck: exclude-functions:
exclude-functions: - io/ioutil.ReadFile
- io/ioutil.ReadFile - io.Copy(*bytes.Buffer)
- io.Copy(*bytes.Buffer) - io.Copy(os.Stdout)
- io.Copy(os.Stdout) - net.(*)
- net.(*) misspell:
staticcheck: locale: US
# SAxxxx checks in https://staticcheck.io/docs/configuration/options/#checks revive:
checks: ["all"] max-open-files: 2048
stylecheck: confidence: 0.1
checks: severity: error
[ enable-all-rules: false
"all", rules:
"-ST1000", - name: argument-limit
"-ST1001", arguments:
"-ST1003", - 15
"-ST1016", severity: warning
"-ST1020", disabled: false
"-ST1021", - name: atomic
"-ST1022", severity: warning
] disabled: false
misspell: - name: banned-characters
# Correct spellings using locale preferences for US or UK. arguments:
# Setting locale to US will correct the British spelling of 'colour' to 'color'. - Ω
# Default is to use a neutral variety of English. - Σ
locale: US - σ
ignore-words: [] severity: warning
revive: disabled: false
# Maximum number of open files at the same time. - name: bool-literal-in-expr
# See https://github.com/mgechev/revive#command-line-flags severity: warning
# Defaults to unlimited. disabled: false
max-open-files: 2048 - name: call-to-gc
# When set to false, ignores files with "GENERATED" header, similar to golint. severity: warning
# See https://github.com/mgechev/revive#available-rules for details. disabled: false
# Default: false - name: cognitive-complexity
ignore-generated-header: true arguments:
# Sets the default severity. - 20
# See https://github.com/mgechev/revive#configuration severity: warning
# Default: warning disabled: false
severity: error - name: constant-logical-expr
# Enable all available rules. severity: warning
# Default: false disabled: false
enable-all-rules: false - name: context-as-argument
# Sets the default failure confidence. severity: warning
# This means that linting errors with less than 0.8 confidence will be ignored. disabled: false
# Default: 0.8 - name: context-keys-type
confidence: 0.1 severity: warning
rules: disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit - name: cyclomatic
- name: argument-limit arguments:
severity: warning - 20
disabled: false severity: warning
arguments: [6] disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic - name: datarace
- name: atomic severity: warning
severity: warning disabled: false
disabled: false - name: deep-exit
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#banned-characters severity: warning
- name: banned-characters disabled: false
severity: warning - name: defer
disabled: false arguments:
arguments: ["Ω", "Σ", "σ"] - - call-chain
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr - loop
- name: bool-literal-in-expr severity: warning
severity: warning disabled: false
disabled: false - name: duplicated-imports
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#call-to-gc severity: warning
- name: call-to-gc disabled: false
severity: warning - name: early-return
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cognitive-complexity disabled: false
- name: cognitive-complexity - name: error-naming
severity: warning severity: warning
disabled: false disabled: false
arguments: [20] - name: error-return
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr severity: warning
- name: constant-logical-expr disabled: false
severity: warning - name: error-strings
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument disabled: false
- name: context-as-argument - name: errorf
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type - name: exported
- name: context-keys-type arguments:
severity: warning - checkPrivateReceivers
disabled: false - sayRepetitiveInsteadOfStutters
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cyclomatic severity: warning
- name: cyclomatic disabled: false
severity: warning - name: function-result-limit
disabled: false arguments:
arguments: [20] - 6
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace severity: warning
- name: datarace disabled: false
severity: warning - name: function-length
disabled: false arguments:
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit - 100
- name: deep-exit - 0
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer - name: get-return
- name: defer severity: warning
severity: warning disabled: false
disabled: false - name: if-return
arguments: severity: warning
- ["call-chain", "loop"] disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports - name: increment-decrement
- name: duplicated-imports severity: warning
severity: warning disabled: false
disabled: false - name: indent-error-flow
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return severity: warning
- name: early-return disabled: false
severity: warning - name: modifies-value-receiver
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming disabled: false
- name: error-naming - name: nested-structs
severity: warning severity: warning
disabled: false disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return - name: optimize-operands-order
- name: error-return severity: warning
severity: warning disabled: false
disabled: false - name: package-comments
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings severity: warning
- name: error-strings disabled: false
severity: warning - name: range
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf disabled: false
- name: errorf - name: range-val-in-closure
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported - name: range-val-address
- name: exported severity: warning
severity: warning disabled: false
disabled: false - name: receiver-naming
arguments: severity: warning
- "checkPrivateReceivers" disabled: false
- "sayRepetitiveInsteadOfStutters" - name: redefines-builtin-id
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-result-limit severity: warning
- name: function-result-limit disabled: false
severity: warning - name: string-of-int
disabled: false severity: warning
arguments: [4] disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-length - name: string-format
- name: function-length arguments:
severity: warning - - core.WriteError[1].Message
disabled: false - /^([^A-Z]|$)/
arguments: [100, 0] - must not start with a capital letter
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#get-return - - fmt.Errorf[0]
- name: get-return - /(^|[^\.!?])$/
severity: warning - must not end in punctuation
disabled: false - - panic
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches - /^[^\n]*$/
- name: identical-branches - must not contain line breaks
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return - name: struct-tag
- name: if-return severity: warning
severity: warning disabled: false
disabled: false - name: superfluous-else
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement severity: warning
- name: increment-decrement disabled: false
severity: warning - name: time-equal
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow disabled: false
- name: indent-error-flow - name: time-naming
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#imports-blacklist # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#var-naming
- name: imports-blacklist - name: var-naming
severity: warning arguments:
disabled: false - ["ID", "Id", "id"]
arguments: - ["VM"]
- "crypto/md5" - [{ skipInitialismNameChecks = true }]
- "crypto/sha1" severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-value-receiver disabled: true
- name: modifies-value-receiver - name: var-declaration
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#nested-structs - name: unconditional-recursion
- name: nested-structs severity: warning
severity: warning disabled: false
disabled: false - name: unexported-naming
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#optimize-operands-order severity: warning
- name: optimize-operands-order disabled: false
severity: warning - name: unexported-return
disabled: false disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments - name: unhandled-error
- name: package-comments arguments:
severity: warning - fmt.Printf
disabled: false - os.(Create|WriteFile|Chmod)
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range - net.*
- name: range - bytes.Buffer.WriteString
severity: warning - con.WriteString
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure disabled: true
- name: range-val-in-closure - name: unnecessary-stmt
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address - name: unreachable-code
- name: range-val-address severity: warning
severity: warning disabled: false
disabled: false - name: useless-break
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#receiver-naming severity: warning
- name: receiver-naming disabled: false
severity: warning - name: waitgroup-by-value
disabled: false severity: warning
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id disabled: false
- name: redefines-builtin-id staticcheck:
severity: warning checks:
disabled: false - all
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-of-int - -ST1000
- name: string-of-int - -ST1001
severity: warning - -ST1003
disabled: false - -ST1016
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format - -ST1020
- name: string-format - -ST1021
severity: warning - -ST1022
disabled: false exclusions:
arguments: generated: lax
- - "core.WriteError[1].Message" presets:
- "/^([^A-Z]|$)/" - comments
- must not start with a capital letter - common-false-positives
- - "fmt.Errorf[0]" - legacy
- '/(^|[^\.!?])$/' - std-error-handling
- must not end in punctuation paths:
- - panic - third_party$
- '/^[^\n]*$/' - builtin$
- must not contain line breaks - examples$
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag formatters:
- name: struct-tag enable:
severity: warning - gofmt
disabled: false exclusions:
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else generated: lax
- name: superfluous-else paths:
severity: warning - third_party$
disabled: false - builtin$
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal - examples$
- name: time-equal
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-naming
- name: time-naming
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming
- name: var-naming
severity: warning
disabled: true
arguments:
- ["ID"] # AllowList
- ["VM"] # DenyList
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
- name: var-declaration
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
- name: unconditional-recursion
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
- name: unexported-naming
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
- name: unexported-return
disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
- name: unhandled-error
severity: warning
disabled: true
# bytes.Buffer.Write: package name, structure name, function name
arguments:
- "fmt.Printf"
- "os.(Create|WriteFile|Chmod)"
- "net.*"
- "bytes.Buffer.WriteString"
- "con.WriteString"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unnecessary-stmt
- name: unnecessary-stmt
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unreachable-code
- name: unreachable-code
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
- name: useless-break
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
- name: waitgroup-by-value
severity: warning
disabled: false
+1 -1
View File
@@ -96,7 +96,7 @@
}, },
"vscode-neovim.mouseSelectionStartVisualMode": true, "vscode-neovim.mouseSelectionStartVisualMode": true,
"go.lintTool": "golangci-lint", "go.lintTool": "golangci-lint",
"go.lintFlags": ["--fast"], "go.lintFlags": ["--config=~/.dotfile/golang/golangci.yml"],
"go.liveErrors": { "go.liveErrors": {
"enabled": false, "enabled": false,
"delay": 500 "delay": 500