mirror of
				https://gogs.blitter.com/RLabs/xs
				synced 2024-08-14 10:26:42 +00:00 
			
		
		
		
	Added golangci-lint config
Signed-off-by: Russ Magee <rmagee@gmail.com>
This commit is contained in:
		
							parent
							
								
									18cde5a88c
								
							
						
					
					
						commit
						1df11fd67b
					
				
					 1 changed files with 327 additions and 0 deletions
				
			
		
							
								
								
									
										327
									
								
								.golangci.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								.golangci.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,327 @@ | ||||||
|  | # This file contains all available configuration options | ||||||
|  | # with their default values. | ||||||
|  | 
 | ||||||
|  | # options for analysis running | ||||||
|  | run: | ||||||
|  |   # default concurrency is a available CPU number | ||||||
|  |   concurrency: 4 | ||||||
|  | 
 | ||||||
|  |   # timeout for analysis, e.g. 30s, 5m, default is 1m | ||||||
|  |   timeout: 1m | ||||||
|  | 
 | ||||||
|  |   # 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). | ||||||
|  |   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. | ||||||
|  |   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|release|vendor | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # output configuration options | ||||||
|  | output: | ||||||
|  |   # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" | ||||||
|  |   format: colored-line-number | ||||||
|  | 
 | ||||||
|  |   # print lines of code with issue, default is true | ||||||
|  |   print-issued-lines: true | ||||||
|  | 
 | ||||||
|  |   # 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 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # all available settings of specific linters | ||||||
|  | linters-settings: | ||||||
|  |   dogsled: | ||||||
|  |     # checks assignments with too many blank identifiers; default is 2 | ||||||
|  |     max-blank-identifiers: 2 | ||||||
|  |   dupl: | ||||||
|  |     # tokens count to trigger issue, 150 by default | ||||||
|  |     threshold: 100 | ||||||
|  |   errcheck: | ||||||
|  |     # report about not checking of errors in type assetions: `a := b.(MyStruct)`; | ||||||
|  |     # default is false: such cases aren't reported by default. | ||||||
|  |     check-type-assertions: false | ||||||
|  | 
 | ||||||
|  |     # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; | ||||||
|  |     # default is false: such cases aren't reported by default. | ||||||
|  |     check-blank: false | ||||||
|  | 
 | ||||||
|  |     # [deprecated] comma-separated list of pairs of the form pkg:regex | ||||||
|  |     # the regex is used to ignore names within pkg. (default "fmt:.*"). | ||||||
|  |     # see https://github.com/kisielk/errcheck#the-deprecated-method for details | ||||||
|  |     ignore: fmt:.*,io/ioutil:^Read.* | ||||||
|  | 
 | ||||||
|  |     # path to a file containing a list of functions to exclude from checking | ||||||
|  |     # see https://github.com/kisielk/errcheck#excluding-functions for details | ||||||
|  |     #!exclude: /path/to/file.txt | ||||||
|  |   funlen: | ||||||
|  |     lines: 60 | ||||||
|  |     statements: 40 | ||||||
|  |   gocognit: | ||||||
|  |     # minimal code complexity to report, 30 by default (but we recommend 10-20) | ||||||
|  |     min-complexity: 10 | ||||||
|  |   goconst: | ||||||
|  |     # minimal length of string constant, 3 by default | ||||||
|  |     min-len: 3 | ||||||
|  |     # minimal occurrences count to trigger, 3 by default | ||||||
|  |     min-occurrences: 3 | ||||||
|  |   gocritic: | ||||||
|  |     # Which checks should be enabled; can't be combined with 'disabled-checks'; | ||||||
|  |     # See https://go-critic.github.io/overview#checks-overview | ||||||
|  |     # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run` | ||||||
|  |     # By default list of stable checks is used. | ||||||
|  |     enabled-checks: | ||||||
|  |       #!- rangeValCopy | ||||||
|  | 
 | ||||||
|  |     # Which checks should be disabled; can't be combined with 'enabled-checks'; default is empty | ||||||
|  |     disabled-checks: | ||||||
|  |       - regexpMust | ||||||
|  | 
 | ||||||
|  |     # 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: | ||||||
|  |       - performance | ||||||
|  | 
 | ||||||
|  |     settings: # settings passed to gocritic | ||||||
|  |       captLocal: # must be valid enabled check name | ||||||
|  |         paramsOnly: true | ||||||
|  |       rangeValCopy: | ||||||
|  |         sizeThreshold: 32 | ||||||
|  |   gocyclo: | ||||||
|  |     # minimal code complexity to report, 30 by default (but we recommend 10-20) | ||||||
|  |     min-complexity: 10 | ||||||
|  |   godox: | ||||||
|  |     # report any comments starting with keywords, this is useful for TODO or FIXME comments that | ||||||
|  |     # might be left in the code accidentally and should be resolved before merging | ||||||
|  |     keywords: # default keywords are TODO, BUG, and FIXME, these can be overwritten by this setting | ||||||
|  |       - NOTE | ||||||
|  |       - OPTIMIZE # marks code that should be optimized before merging | ||||||
|  |       - HACK # marks hack-arounds that should be removed before merging | ||||||
|  |   gofmt: | ||||||
|  |     # simplify code: gofmt with `-s` option, true by default | ||||||
|  |     simplify: true | ||||||
|  |   goimports: | ||||||
|  |     # put imports beginning with prefix after 3rd-party packages; | ||||||
|  |     # it's a comma-separated list of prefixes | ||||||
|  |     local-prefixes: github.com/org/project | ||||||
|  |   golint: | ||||||
|  |     # minimal confidence for issues, default is 0.8 | ||||||
|  |     min-confidence: 0.8 | ||||||
|  |   gomnd: | ||||||
|  |     settings: | ||||||
|  |       mnd: | ||||||
|  |         # the list of enabled checks, see https://github.com/tommy-muehle/go-mnd/#checks for description. | ||||||
|  |         checks: argument,case,condition,operation,return,assign | ||||||
|  |   govet: | ||||||
|  |     # report about shadowed variables | ||||||
|  |     check-shadowing: true | ||||||
|  | 
 | ||||||
|  |     # settings per analyzer | ||||||
|  |     settings: | ||||||
|  |       printf: # analyzer name, run `go tool vet help` to see all analyzers | ||||||
|  |         funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer | ||||||
|  |           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof | ||||||
|  |           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf | ||||||
|  |           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf | ||||||
|  |           - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf | ||||||
|  | 
 | ||||||
|  |     # enable or disable analyzers by name | ||||||
|  |     enable: | ||||||
|  |       - atomicalign | ||||||
|  |     enable-all: false | ||||||
|  |     disable: | ||||||
|  |       - shadow | ||||||
|  |     disable-all: false | ||||||
|  |   depguard: | ||||||
|  |     list-type: blacklist | ||||||
|  |     include-go-root: false | ||||||
|  |     packages: | ||||||
|  |       - github.com/sirupsen/logrus | ||||||
|  |     packages-with-error-message: | ||||||
|  |       # specify an error message to output when a blacklisted package is used | ||||||
|  |       - github.com/sirupsen/logrus: "logging is allowed only by logutils.Log" | ||||||
|  |   lll: | ||||||
|  |     # max line length, lines longer will be reported. Default is 120. | ||||||
|  |     # '\t' is counted as 1 character by default, and can be changed with the tab-width option | ||||||
|  |     line-length: 120 | ||||||
|  |     # tab width in spaces. Default to 1. | ||||||
|  |     tab-width: 1 | ||||||
|  |   maligned: | ||||||
|  |     # print struct with more effective memory layout or not, false by default | ||||||
|  |     suggest-new: true | ||||||
|  |   misspell: | ||||||
|  |     # Correct spellings using locale preferences for US or UK. | ||||||
|  |     # Default is to use a neutral variety of English. | ||||||
|  |     # Setting locale to US will correct the British spelling of 'colour' to 'color'. | ||||||
|  |     locale: US | ||||||
|  |     ignore-words: | ||||||
|  |       - someword | ||||||
|  |   nakedret: | ||||||
|  |     # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 | ||||||
|  |     max-func-lines: 30 | ||||||
|  |   prealloc: | ||||||
|  |     # XXX: we don't recommend using this linter before doing performance profiling. | ||||||
|  |     # For most programs usage of prealloc will be a premature optimization. | ||||||
|  | 
 | ||||||
|  |     # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. | ||||||
|  |     # True by default. | ||||||
|  |     simple: true | ||||||
|  |     range-loops: true # Report preallocation suggestions on range loops, true by default | ||||||
|  |     for-loops: false # Report preallocation suggestions on for loops, false by default | ||||||
|  |   rowserrcheck: | ||||||
|  |     packages: | ||||||
|  |       - github.com/jmoiron/sqlx | ||||||
|  |   unparam: | ||||||
|  |     # Inspect exported functions, default is false. Set to true if no external program/library imports your code. | ||||||
|  |     # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: | ||||||
|  |     # if it's called for subdir of a project it can't find external interfaces. All text editor integrations | ||||||
|  |     # with golangci-lint call it on a directory with the changed file. | ||||||
|  |     check-exported: false | ||||||
|  |   unused: | ||||||
|  |     # treat code as a program (not a library) and report unused exported identifiers; default is false. | ||||||
|  |     # XXX: if you enable this setting, unused will report a lot of false-positives in text editors: | ||||||
|  |     # if it's called for subdir of a project it can't find funcs usages. All text editor integrations | ||||||
|  |     # with golangci-lint call it on a directory with the changed file. | ||||||
|  |     check-exported: false | ||||||
|  |   whitespace: | ||||||
|  |     multi-if: false   # Enforces newlines (or comments) after every multi-line if statement | ||||||
|  |     multi-func: false # Enforces newlines (or comments) after every multi-line function signature | ||||||
|  |   wsl: | ||||||
|  |     # If true append is only allowed to be cuddled if appending value is | ||||||
|  |     # matching variables, fields or types on line above. Default is true. | ||||||
|  |     strict-append: true | ||||||
|  |     # Allow calls and assignments to be cuddled as long as the lines have any | ||||||
|  |     # matching variables, fields or types. Default is true. | ||||||
|  |     allow-assign-and-call: true | ||||||
|  |     # Allow multiline assignments to be cuddled. Default is true. | ||||||
|  |     allow-multiline-assign: true | ||||||
|  |     # Allow declarations (var) to be cuddled. | ||||||
|  |     allow-cuddle-declarations: false | ||||||
|  |     # Allow trailing comments in ending of blocks | ||||||
|  |     allow-trailing-comment: false | ||||||
|  |     # Force newlines in end of case at this limit (0 = never). | ||||||
|  |     force-case-trailing-whitespace: 0 | ||||||
|  | 
 | ||||||
|  |   # The custom section can be used to define linter plugins to be loaded at runtime. See README doc | ||||||
|  |   #  for more info. | ||||||
|  |   custom: | ||||||
|  |     # Each custom linter should have a unique name. | ||||||
|  |     #! example: | ||||||
|  |     #!  # The path to the plugin *.so. Can be absolute or local. Required for each custom linter | ||||||
|  |     #!  path: /path/to/example.so | ||||||
|  |     #!  # The description of the linter. Optional, just for documentation purposes. | ||||||
|  |     #!  description: This is an example usage of a plugin linter. | ||||||
|  |     #!  # Intended to point to the repo location of the linter. Optional, just for documentation purposes. | ||||||
|  |     #!  original-url: github.com/golangci/example-linter | ||||||
|  | 
 | ||||||
|  | linters: | ||||||
|  |   enable: | ||||||
|  |     - megacheck | ||||||
|  |     - govet | ||||||
|  |   disable: | ||||||
|  |     - maligned | ||||||
|  |     - prealloc | ||||||
|  |   disable-all: false | ||||||
|  |   presets: | ||||||
|  |     - bugs | ||||||
|  |     - unused | ||||||
|  |   fast: false | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | issues: | ||||||
|  |   # List of regexps of issue texts to exclude, empty list by default. | ||||||
|  |   # But independently from this option we use default exclude patterns, | ||||||
|  |   # it can be disabled by `exclude-use-default: false`. To list all | ||||||
|  |   # excluded by default patterns execute `golangci-lint run --help` | ||||||
|  |   exclude: | ||||||
|  |     - abcdef | ||||||
|  | 
 | ||||||
|  |   # Excluding configuration per-path, per-linter, per-text and per-source | ||||||
|  |   exclude-rules: | ||||||
|  |     # Exclude some linters from running on tests files. | ||||||
|  |     - path: _test\.go | ||||||
|  |       linters: | ||||||
|  |         - gocyclo | ||||||
|  |         - errcheck | ||||||
|  |         - dupl | ||||||
|  |         - gosec | ||||||
|  | 
 | ||||||
|  |     # Exclude known linters from partially hard-vendored code, | ||||||
|  |     # which is impossible to exclude via "nolint" comments. | ||||||
|  |     - path: internal/hmac/ | ||||||
|  |       text: "weak cryptographic primitive" | ||||||
|  |       linters: | ||||||
|  |         - gosec | ||||||
|  | 
 | ||||||
|  |     # Exclude some staticcheck messages | ||||||
|  |     - linters: | ||||||
|  |         - staticcheck | ||||||
|  |       text: "SA9003:" | ||||||
|  | 
 | ||||||
|  |     # Exclude lll issues for long lines with go:generate | ||||||
|  |     - linters: | ||||||
|  |         - lll | ||||||
|  |       source: "^//go:generate " | ||||||
|  | 
 | ||||||
|  |   # Independently from option `exclude` we use default exclude patterns, | ||||||
|  |   # it can be disabled by this option. To list all | ||||||
|  |   # excluded by default patterns execute `golangci-lint run --help`. | ||||||
|  |   # Default value for this option is true. | ||||||
|  |   exclude-use-default: false | ||||||
|  | 
 | ||||||
|  |   # Maximum issues count per one linter. Set to 0 to disable. Default is 50. | ||||||
|  |   max-issues-per-linter: 0 | ||||||
|  | 
 | ||||||
|  |   # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. | ||||||
|  |   max-same-issues: 0 | ||||||
|  | 
 | ||||||
|  |   # Show only new issues: if there are unstaged changes or untracked files, | ||||||
|  |   # only those changes are analyzed, else only changes in HEAD~ are analyzed. | ||||||
|  |   # It's a super-useful option for integration of golangci-lint into existing | ||||||
|  |   # large codebase. It's not practical to fix all existing issues at the moment | ||||||
|  |   # of integration: much better don't allow issues in new code. | ||||||
|  |   # Default is false. | ||||||
|  |   new: false | ||||||
|  | 
 | ||||||
|  |   # Show only new issues created after git revision `REV` | ||||||
|  |   #!new-from-rev: REV | ||||||
|  |   #new-from-rev: HEAD^ | ||||||
|  | 
 | ||||||
|  |   # Show only new issues created in git patch with set file path. | ||||||
|  |   #!new-from-patch: path/to/patch/file | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue