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