-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.golangci.yml
149 lines (127 loc) · 7.37 KB
/
.golangci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# https://gist.github.com/pantafive/3296201ef3dc14a71139cae157aa8c34
run:
# timeout for analysis, e.g. 30s, 5m, default is 1m
timeout: 10m
# exit code when at least one issue was found, default is 1
issues-exit-code: 1
# include test files or not, default is true
tests: true
# list of build tags, all linters use it. Default is empty list.
# build-tags:
# - mytag
# which dirs to skip: issues from them won't be reported;
# can use regexp here: generated.*, regexp is applied on full path;
# default value is empty list, but default dirs are skipped independently
# from this option's value (see skip-dirs-use-default).
# "/" will be replaced by current OS file path separator to properly work
# on Windows.
# skip-dirs:
# - src/external_libs
# - autogenerated_by_my_lib
# default is true. Enables skipping of directories:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs-use-default: true
# which files to skip: they will be analyzed, but issues from them
# won't be reported. Default value is empty list, but there is
# no need to include all autogenerated files, we confidently recognize
# autogenerated files. If it's not please let us know.
# "/" will be replaced by current OS file path separator to properly work
# on Windows.
# skip-files:
# - ".*\\.my\\.go$"
# - lib/bad.go
# by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
# modules-download-mode: readonly|vendor|mod
# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
allow-parallel-runners: false
# Define the Go version limit.
# Mainly related to generics support in go1.18.
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.17
go: '1.22'
linters:
enable-all: true
disable:
- deadcode # [deprecated]: Finds unused code [fast: false, auto-fix: false]
- depguard # : Go linter that checks if package imports are in a list of acceptable packages
- exhaustivestruct # [deprecated]: Checks if all struct's fields are initialized [fast: false, auto-fix: false]
- exhaustruct # : Checks if all structure fields are initialized [fast: false, auto-fix: false]
- forbidigo # : Forbids identifiers [fast: true, auto-fix: false]
- gochecknoinits # : Checks that no init functions are present in Go code [fast: true, auto-fix: false]
- godot # : Check if comments end in a period [fast: true, auto-fix: true]
- godox # : Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false]
- golint # [deprecated]: Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast: false, auto-fix: false]
- ifshort # [deprecated]: Checks that your code uses short syntax for if-statements whenever possible [fast: true, auto-fix: false]
- interfacer # [deprecated]: Linter that suggests narrower interface types [fast: false, auto-fix: false]
- ireturn # : Accept Interfaces, Return Concrete Types [fast: true, auto-fix: false]
- lll # : Reports long lines [fast: true, auto-fix: false]
- maligned # [deprecated]: Tool to detect Go structs that would take less memory if their fields were sorted [fast: false, auto-fix: false]
- nlreturn # : nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false]
- nosnakecase # [deprecated]: nosnakecase is a linter that detects snake case of variable naming and function name. [fast: true, auto-fix: false]
- paralleltest # : paralleltest detects missing usage of t.Parallel() method in your Go test [fast: true, auto-fix: false]
- scopelint # [deprecated]: Scopelint checks for unpinned variables in go programs [fast: true, auto-fix: false]
- structcheck # [deprecated]: Finds unused struct fields [fast: false, auto-fix: false]
- testpackage # : linter that makes you use a separate _test package [fast: true, auto-fix: false]
- varcheck # [deprecated]: Finds unused global variables and constants [fast: false, auto-fix: false]
- varnamelen #: checks that the length of a variable's name matches its scope [fast: false, auto-fix: false]
- wrapcheck # : Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false]
- wsl # : Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false]
- gomoddirectives # : Checks if go.mod file has directives [fast: false, auto-fix: false]
# output configuration options
output:
# colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions
# default is "colored-line-number"
# print lines of code with issue, default is true
print-issued-lines: false
# print linter name in the end of issue text, default is true
print-linter-name: true
# make issues output unique by line, default is true
# uniq-by-line: true
# add a prefix to the output file references; default is no prefix
# path-prefix: ""
# sorts results by: filepath, line and column
sort-results: true
# all available settings of specific linters
linters-settings:
gocritic:
# Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
# Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
disabled-checks:
- commentedOutCode
- commentFormatting
- hugeParam # does not work with generics
- typeDefFirst # does not work with generics
- whyNoLint
gocyclo:
# Minimal code complexity to report.
# Default: 30 (but we recommend 10-20)
min-complexity: 10
goimports:
local-prefixes: github.com/ar2rworld/golang-telegram-video-downloader
gci:
sections:
- standard # Standard section: captures all standard packages.
- default # Default section: contains all imports that could not be matched to another section type.
- prefix(github.com/ar2rworld/golang-telegram-video-downloader) # Custom section: groups all imports with the specified Prefix.
- blank # Blank section: contains all blank imports. This section is not present unless explicitly enabled.
- dot # Dot section: contains all dot imports. This section is not present unless explicitly enabled.
skip-generated: true
custom-order: true
gofumpt:
extra-rules: true
issues:
exclude-dirs:
- telegram-bot-api