/gocyclo

Calculate cognitive complexities of functions in Go source code.

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Gocyclo calculates cyclomatic complexities of functions in Go source code.

The cognitive complexity of a function is calculated according to the following rules (like Sonar):

 1 is the base complexity of a function
+1 for each 'if', 'for', 'case', '&&' or '||' inside 'if', 'for'
+1 for nested 'if', 'for', 'case', 'func'

Note: this is the fork from fzipp/gocyclo but it caculate nested complexity as well.

To install, run

$ go get github.com/yfwz100/gocyclo

and put the resulting binary in one of your PATH directories if $GOPATH/bin isn't already in your PATH.

Usage:

$ gocyclo [<flag> ...] <Go file or directory> ...

Examples:

$ gocyclo .
$ gocyclo main.go
$ gocyclo -top 10 src/
$ gocyclo -over 25 docker
$ gocyclo -avg .

The output fields for each line are:

<complexity> <package> <function> <file:row:column>