sudo pacman -Syu 8d5c63b8db | ||
---|---|---|
.github | ||
cmd/gofimports | ||
internal | ||
.gitignore | ||
.golangci.yml | ||
.goreleaser.yml | ||
CHANGELOG.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
go.mod | ||
go.sum |
README.md
gofimports
Group Go imports with my opinionated preferences.
First is standard. Then third party, then company if exist. The last is local.
Also main selling point of this tool is to group imports not sort them.
So please run gofumpt
or gofmt
after running this tool.
Under the hood, this tool get all imports, then group them into 4 groups (std, third party, company, local). Remember, no sort here. Then insert empty import (empty path) between each group to get final imports Then update Go ast decls import with final imports.
Install
With Go version >= 1.16
:
go install github.com/haunt98/gofimports/cmd/gofimports@latest
Usage
# Format ./internal
# with print impacted file (-l),
# write to file (-w),
# print diff (-d)
# company is github.com/make-go-great
gofimports -l -company github.com/make-go-great -w -d ./internal
Example result:
import (
"fmt"
"github.com/urfave/cli/v2"
"github.com/pkg/diff"
"github.com/make-go-great/color-go"
"github.com/haunt98/gofimports/internal/imports"
)
Roadmap
- Diff with color
- Add profiling
- Improve performance