maintidx measures the maintainability index of each function.
Here for more information about this package.(Sorry, japanese only)
What is maintainability index
The maintainability index is an index that measures the maintainability of source code.
The coefficients include cyclomatic complexity, halstead volume, and line of code.
This library used the rebased value provided by Microsoft.
The maintainability index is an experimental value, so don't expect too much from it, but the cyclomatic complexity used as a coefficient was found to be closely related to the number of times the code was edited.
Go version < 1.16
go get -u firstname.lastname@example.org
Go version 1.16+
go install email@example.com
- Install golangci-lint
- Execute the following
golangci-lint run --disable-all -E maintidx
It's also available to use .golangci.yml
# Add maintidx to enable linters. linters: enable: - maintidx linters-settings: maintidx: # Show functions with maintainability index lower than N. # A high index indicates better maintainability (it's kind of the opposite of complexity). # Default: 20 under: 100
Execute using .golangci.yml
with go run
go run github.com/yagipy/maintidx/cmd/maintidx ./...
with go vet
go vet -vettool=`which maintidx` ./...
Flags: -under int show functions with maintainability index < N only. (default 20)