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
+81 -141
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.(*)
staticcheck:
# SAxxxx checks in https://staticcheck.io/docs/configuration/options/#checks
checks: ["all"]
stylecheck:
checks:
[
"all",
"-ST1000",
"-ST1001",
"-ST1003",
"-ST1016",
"-ST1020",
"-ST1021",
"-ST1022",
]
misspell: misspell:
# Correct spellings using locale preferences for US or UK.
# Setting locale to US will correct the British spelling of 'colour' to 'color'.
# Default is to use a neutral variety of English.
locale: US locale: US
ignore-words: []
revive: revive:
# Maximum number of open files at the same time.
# See https://github.com/mgechev/revive#command-line-flags
# Defaults to unlimited.
max-open-files: 2048 max-open-files: 2048
# When set to false, ignores files with "GENERATED" header, similar to golint.
# See https://github.com/mgechev/revive#available-rules for details.
# Default: false
ignore-generated-header: true
# Sets the default severity.
# See https://github.com/mgechev/revive#configuration
# Default: warning
severity: error
# Enable all available rules.
# Default: false
enable-all-rules: false
# Sets the default failure confidence.
# This means that linting errors with less than 0.8 confidence will be ignored.
# Default: 0.8
confidence: 0.1 confidence: 0.1
severity: error
enable-all-rules: false
rules: rules:
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#argument-limit
- name: argument-limit - name: argument-limit
arguments:
- 15
severity: warning severity: warning
disabled: false disabled: false
arguments: [6]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#atomic
- name: atomic - name: atomic
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#banned-characters
- name: banned-characters - name: banned-characters
arguments:
- Ω
- Σ
- σ
severity: warning severity: warning
disabled: false disabled: false
arguments: ["Ω", "Σ", "σ"]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#bool-literal-in-expr
- name: bool-literal-in-expr - name: bool-literal-in-expr
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#call-to-gc
- name: call-to-gc - name: call-to-gc
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cognitive-complexity
- name: cognitive-complexity - name: cognitive-complexity
arguments:
- 20
severity: warning severity: warning
disabled: false disabled: false
arguments: [20]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#constant-logical-expr
- name: constant-logical-expr - name: constant-logical-expr
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-as-argument
- name: context-as-argument - name: context-as-argument
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#context-keys-type
- name: context-keys-type - name: context-keys-type
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#cyclomatic
- name: cyclomatic - name: cyclomatic
arguments:
- 20
severity: warning severity: warning
disabled: false disabled: false
arguments: [20]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#datarace
- name: datarace - name: datarace
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#deep-exit
- name: deep-exit - name: deep-exit
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#defer
- name: defer - name: defer
arguments:
- - call-chain
- loop
severity: warning severity: warning
disabled: false disabled: false
arguments:
- ["call-chain", "loop"]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#duplicated-imports
- name: duplicated-imports - name: duplicated-imports
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#early-return
- name: early-return - name: early-return
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-naming
- name: error-naming - name: error-naming
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-return
- name: error-return - name: error-return
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#error-strings
- name: error-strings - name: error-strings
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#errorf
- name: errorf - name: errorf
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#exported
- name: exported - name: exported
severity: warning
disabled: false
arguments: arguments:
- "checkPrivateReceivers" - checkPrivateReceivers
- "sayRepetitiveInsteadOfStutters" - sayRepetitiveInsteadOfStutters
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-result-limit severity: warning
disabled: false
- name: function-result-limit - name: function-result-limit
arguments:
- 6
severity: warning severity: warning
disabled: false disabled: false
arguments: [4]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#function-length
- name: function-length - name: function-length
arguments:
- 100
- 0
severity: warning severity: warning
disabled: false disabled: false
arguments: [100, 0]
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#get-return
- name: get-return - name: get-return
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#identical-branches
- name: identical-branches
severity: warning
disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#if-return
- name: if-return - name: if-return
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#increment-decrement
- name: increment-decrement - name: increment-decrement
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#indent-error-flow
- name: indent-error-flow - name: indent-error-flow
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#imports-blacklist
- name: imports-blacklist
severity: warning
disabled: false
arguments:
- "crypto/md5"
- "crypto/sha1"
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#modifies-value-receiver
- name: modifies-value-receiver - name: modifies-value-receiver
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#nested-structs
- name: nested-structs - name: nested-structs
severity: warning severity: warning
disabled: false disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#optimize-operands-order
- name: optimize-operands-order - name: optimize-operands-order
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#package-comments
- name: package-comments - name: package-comments
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range
- name: range - name: range
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-in-closure
- name: range-val-in-closure - name: range-val-in-closure
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#range-val-address
- name: range-val-address - name: range-val-address
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#receiver-naming
- name: receiver-naming - name: receiver-naming
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#redefines-builtin-id
- name: redefines-builtin-id - name: redefines-builtin-id
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-of-int
- name: string-of-int - name: string-of-int
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#string-format
- name: string-format - name: string-format
severity: warning
disabled: false
arguments: arguments:
- - "core.WriteError[1].Message" - - core.WriteError[1].Message
- "/^([^A-Z]|$)/" - /^([^A-Z]|$)/
- must not start with a capital letter - must not start with a capital letter
- - "fmt.Errorf[0]" - - fmt.Errorf[0]
- '/(^|[^\.!?])$/' - /(^|[^\.!?])$/
- must not end in punctuation - must not end in punctuation
- - panic - - panic
- '/^[^\n]*$/' - /^[^\n]*$/
- must not contain line breaks - must not contain line breaks
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#struct-tag severity: warning
disabled: false
- name: struct-tag - name: struct-tag
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#superfluous-else
- name: superfluous-else - name: superfluous-else
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-equal
- name: time-equal - name: time-equal
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#time-naming
- name: time-naming - name: time-naming
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-naming # https://github.com/mgechev/revive/blob/HEAD/RULES_DESCRIPTIONS.md#var-naming
- name: var-naming - name: var-naming
arguments:
- ["ID", "Id", "id"]
- ["VM"]
- [{ skipInitialismNameChecks = true }]
severity: warning severity: warning
disabled: true disabled: true
arguments:
- ["ID"] # AllowList
- ["VM"] # DenyList
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#var-declaration
- name: var-declaration - name: var-declaration
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unconditional-recursion
- name: unconditional-recursion - name: unconditional-recursion
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-naming
- name: unexported-naming - name: unexported-naming
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unexported-return
- name: unexported-return - name: unexported-return
disabled: true disabled: true
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unhandled-error
- name: unhandled-error - name: unhandled-error
arguments:
- fmt.Printf
- os.(Create|WriteFile|Chmod)
- net.*
- bytes.Buffer.WriteString
- con.WriteString
severity: warning severity: warning
disabled: true 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 - name: unnecessary-stmt
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#unreachable-code
- name: unreachable-code - name: unreachable-code
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#useless-break
- name: useless-break - name: useless-break
severity: warning severity: warning
disabled: false disabled: false
# https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md#waitgroup-by-value
- name: waitgroup-by-value - name: waitgroup-by-value
severity: warning severity: warning
disabled: false disabled: false
staticcheck:
checks:
- all
- -ST1000
- -ST1001
- -ST1003
- -ST1016
- -ST1020
- -ST1021
- -ST1022
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
+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