mirror of
https://github.com/jorgerojas26/lazysql.git
synced 2026-05-06 08:56:58 -04:00
185 lines
6.2 KiB
YAML
185 lines
6.2 KiB
YAML
---
|
|
# golangci-lint configuration file made by @ccoVeille
|
|
# Source: https://github.com/ccoVeille/golangci-lint-config-examples/
|
|
# Author: @ccoVeille
|
|
# License: MIT
|
|
# Variant: 03-safe
|
|
# Version: v1.0.0 + gosec + sqlclosecheck + rowserrcheck
|
|
#
|
|
linters:
|
|
# some linters are enabled by default
|
|
# https://golangci-lint.run/usage/linters/
|
|
#
|
|
# enable some extra linters
|
|
enable:
|
|
# Errcheck is a program for checking for unchecked errors in Go code.
|
|
- errcheck
|
|
|
|
# Linter for Go source code that specializes in simplifying code.
|
|
- gosimple
|
|
|
|
# Vet examines Go source code and reports suspicious constructs.
|
|
- govet
|
|
|
|
# Detects when assignments to existing variables are not used.
|
|
- ineffassign
|
|
|
|
# It's a set of rules from staticcheck. See https://staticcheck.io/
|
|
- staticcheck
|
|
|
|
# Fast, configurable, extensible, flexible, and beautiful linter for Go.
|
|
# Drop-in replacement of golint.
|
|
- revive
|
|
|
|
# check imports order and makes it always deterministic.
|
|
- gci
|
|
|
|
# make sure to use t.Helper() when needed
|
|
- thelper
|
|
|
|
# mirror suggests rewrites to avoid unnecessary []byte/string conversion
|
|
- mirror
|
|
|
|
# detect the possibility to use variables/constants from the Go standard library.
|
|
- usestdlibvars
|
|
|
|
# Finds commonly misspelled English words.
|
|
- misspell
|
|
|
|
# Checks for duplicate words in the source code.
|
|
- dupword
|
|
|
|
# Inspects source code for security problems.
|
|
- gosec
|
|
|
|
# Checks that sql.Rows, sql.Stmt, sqlx.NamedStmt, pgx.Query are closed.
|
|
- sqlclosecheck
|
|
|
|
# Checks whether Rows.Err of rows is checked successfully.
|
|
- rowserrcheck
|
|
|
|
linters-settings:
|
|
gci: # define the section orders for imports
|
|
sections:
|
|
# Standard section: captures all standard packages.
|
|
- standard
|
|
# Default section: catchall that is not standard or custom
|
|
- default
|
|
# linters that related to local tool, so they should be separated
|
|
- localmodule
|
|
|
|
revive:
|
|
rules:
|
|
# these are the default revive rules
|
|
# you can remove the whole "rules" node if you want
|
|
# BUT
|
|
# ! /!\ they all need to be present when you want to add more rules than the default ones
|
|
# otherwise, you won't have the default rules, but only the ones you define in the "rules" node
|
|
|
|
# Blank import should be only in a main or test package, or have a comment justifying it.
|
|
- name: blank-imports
|
|
|
|
# context.Context() should be the first parameter of a function when provided as argument.
|
|
- name: context-as-argument
|
|
arguments:
|
|
- allowTypesBefore: "*testing.T"
|
|
|
|
# Basic types should not be used as a key in `context.WithValue`
|
|
- name: context-keys-type
|
|
|
|
# Importing with `.` makes the programs much harder to understand
|
|
- name: dot-imports
|
|
|
|
# Empty blocks make code less readable and could be a symptom of a bug or unfinished refactoring.
|
|
- name: empty-block
|
|
|
|
# for better readability, variables of type `error` must be named with the prefix `err`.
|
|
- name: error-naming
|
|
|
|
# for better readability, the errors should be last in the list of returned values by a function.
|
|
- name: error-return
|
|
|
|
# for better readability, error messages should not be capitalized or end with punctuation or a newline.
|
|
- name: error-strings
|
|
|
|
# report when replacing `errors.New(fmt.Sprintf())` with `fmt.Errorf()` is possible
|
|
- name: errorf
|
|
|
|
# enforces conventions on source file names
|
|
- name: filename-format
|
|
arguments: ["^[_a-z][_a-z0-9]*\\.go$"]
|
|
|
|
# incrementing an integer variable by 1 is recommended to be done using the `++` operator
|
|
- name: increment-decrement
|
|
|
|
# highlights redundant else-blocks that can be eliminated from the code
|
|
- name: indent-error-flow
|
|
|
|
# This rule suggests a shorter way of writing ranges that do not use the second value.
|
|
- name: range
|
|
|
|
# receiver names in a method should reflect the struct name (p for Person, for example)
|
|
- name: receiver-naming
|
|
|
|
# redefining built in names (true, false, append, make) can lead to bugs very difficult to detect.
|
|
- name: redefines-builtin-id
|
|
|
|
# redundant else-blocks that can be eliminated from the code.
|
|
- name: superfluous-else
|
|
|
|
# prevent confusing name for variables when using `time` package
|
|
- name: time-naming
|
|
|
|
# warns when an exported function or method returns a value of an un-exported type.
|
|
- name: unexported-return
|
|
|
|
# spots and proposes to remove unreachable code. also helps to spot errors
|
|
- name: unreachable-code
|
|
|
|
# Functions or methods with unused parameters can be a symptom of an unfinished refactoring or a bug.
|
|
- name: unused-parameter
|
|
|
|
# report when a variable declaration can be simplified
|
|
- name: var-declaration
|
|
|
|
# warns when initialism, variable or package naming conventions are not followed.
|
|
- name: var-naming
|
|
arguments: [[], ["DB", "DML"]]
|
|
|
|
# if-then-else conditional with identical implementations in both branches is an error.
|
|
- name: identical-branches
|
|
|
|
# warns when errors returned by a function are not explicitly handled on the caller side.
|
|
- name: unhandled-error
|
|
arguments: # here are the exceptions we don't want to be reported
|
|
- "fmt.Print.*"
|
|
- "fmt.Fprint.*"
|
|
- "bytes.Buffer.Write*"
|
|
- "strings.Builder.Write*"
|
|
|
|
dupword:
|
|
# Keywords used to ignore detection.
|
|
# Default: []
|
|
ignore: []
|
|
|
|
gosec:
|
|
# To specify a set of rules to explicitly exclude.
|
|
# Available rules: https://github.com/securego/gosec#available-rules
|
|
excludes:
|
|
- G306 # Poor file permissions used when writing to a new file
|
|
- G307 # Poor file permissions used when creating a file with os.Create
|
|
|
|
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
|
|
|
|
# List of words to ignore
|
|
# among the one defined in https://github.com/golangci/misspell/blob/master/words.go
|
|
ignore-words: []
|
|
|
|
# Extra word corrections.
|
|
extra-words: []
|
|
|