/awesome-go-code-formatters

A curated list of Go code formatters (like gofmt)

Creative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

Awesome Go code formatters

A curated list of Go code formatters.

Code formatters

  • gofmt -- the default built-in formatter.
  • go-parsefix -- fixes simple parse errors.
  • go-ruleguard -- analysis-based formatter based on custom rules.
  • gofumpt -- a stricter gofmt.
  • golines -- fixes long lines.
  • goreturns -- fills in return statements with zero values to match the func return types.
  • keyify -- turns unkeyed struct literals into keyed ones.
  • unconvert -- removes unnecessary type conversions.
  • structslop -- checks struct can be re-arranged fields to get optimal struct size (can reduce memory use in large collections of struct instances) -- Medium article here.

Imports formatters

  • dedupimport -- fixes duplicate named/unnamed imports that have the same import path
  • gci -- controls package import order and make it always deterministic.
  • goimports-reviser -- goimports alternative.
  • goimports -- adds missing imports and removes unused ones.

Code generators

  • stringer -- generates string representation for integer constants.

See also