From 2ab72b4feef2c97f22f90cfbf9e45a6cfcd08bda Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Tue, 5 Dec 2023 15:10:03 +0100 Subject: vendor: updates --- vendor/github.com/uudashr/gocognit/README.md | 56 ++++++++++++++++++++++------ 1 file changed, 45 insertions(+), 11 deletions(-) (limited to 'vendor/github.com/uudashr/gocognit/README.md') diff --git a/vendor/github.com/uudashr/gocognit/README.md b/vendor/github.com/uudashr/gocognit/README.md index 1e028c789..57f31cf74 100644 --- a/vendor/github.com/uudashr/gocognit/README.md +++ b/vendor/github.com/uudashr/gocognit/README.md @@ -1,6 +1,6 @@ [![GoDoc](https://godoc.org/github.com/uudashr/gocognit?status.svg)](https://godoc.org/github.com/uudashr/gocognit) # Gocognit -Gocognit calculates cognitive complexities of functions in Go source code. A measurement of how hard does the code is intuitively to understand. +Gocognit calculates cognitive complexities of functions (and methods) in Go source code. A measurement of how hard does the code is intuitively to understand. ## Understanding the complexity @@ -37,10 +37,10 @@ func GetWords(number int) string { As you see above codes are the same, but the second code are easier to understand, that is why the cognitive complexity score are lower compare to the first one. -## Comparison with cyclometic complexity +## Comparison with cyclomatic complexity ### Example 1 -#### Cyclometic complexity +#### Cyclomatic complexity ```go func GetWords(number int) string { // +1 switch number { @@ -160,16 +160,40 @@ $ go get github.com/uudashr/gocognit/cmd/gocognit ``` $ gocognit Calculate cognitive complexities of Go functions. + Usage: - gocognit [flags] ... + + gocognit [ ...] ... + Flags: - -over N show functions with complexity > N only and - return exit code 1 if the set is non-empty - -top N show the top N most complex functions only - -avg show the average complexity over all functions, - not depending on whether -over or -top are set -The output fields for each line are: - + + -over N show functions with complexity > N only + and return exit code 1 if the output is non-empty + -top N show the top N most complex functions only + -avg show the average complexity over all functions, + not depending on whether -over or -top are set + -json encode the output as JSON + -f format string the format to use + (default "{{.PkgName}}.{{.FuncName}}:{{.Complexity}}:{{.Pos}}") + +The (default) output fields for each line are: + + + +The (default) output fields for each line are: + + {{.Complexity}} {{.PkgName}} {{.FuncName}} {{.Pos}} + +or equal to + +The struct being passed to the template is: + + type Stat struct { + PkgName string + FuncName string + Complexity int + Pos token.Position + } ``` Examples: @@ -180,6 +204,7 @@ $ gocognit main.go $ gocognit -top 10 src/ $ gocognit -over 25 docker $ gocognit -avg . +$ gocognit -ignore "_test|testdata" . ``` The output fields for each line are: @@ -187,6 +212,15 @@ The output fields for each line are: ``` +## Ignore individual functions +Ignore individual functions by specifying `gocognit:ignore` directive. +```go +//gocognit:ignore +func IgnoreMe() { + // ... +} +``` + ## Related project - [Gocyclo](https://github.com/fzipp/gocyclo) where the code are based on. - [Cognitive Complexity: A new way of measuring understandability](https://www.sonarsource.com/docs/CognitiveComplexity.pdf) white paper by G. Ann Campbell. \ No newline at end of file -- cgit mrf-deployment