gofmt – formats Go programs

gofmt is the standard source-code formatter supplied with Go. It gives Go projects a consistent layout without requiring developers to agree on large sets of formatting options.

It can format source supplied through standard input, individual files or complete directory trees. Output can be written back to files, compared as a diff or simply printed to standard output.

gofmt also provides source simplification and expression rewriting facilities which go beyond basic whitespace formatting.

This is free and open source software.

Key Features

  • Applies the standard Go source-code formatting conventions.
  • Processes standard input, individual files and directories recursively.
  • Can overwrite source files with their formatted versions.
  • Lists files whose formatting differs from gofmt output.
  • Produces unified diffs without modifying source files.
  • Supports pattern-based expression rewriting with the -r option.
  • Can simplify supported Go constructs with the -s option.
  • Accepts syntactically valid Go fragments as well as complete programs when reading standard input.
  • Preserves appropriate leading indentation when formatting source fragments.

Website: pkg.go.dev/cmd/gofmt
Support:
Developer: The Go Authors
License: BSD 3-Clause License

gofmt is written in Go. Learn Go with our recommended free books and free tutorials.


Related Software

Go Linters
reviveDesigned as a drop-in replacement for golint
golangci-lintFast Go linters runner
gosecSecurity scanner for Go projects
StaticcheckAdvanced Go linter
go-criticOpinionated Go source code linter
VetExamines Go source code and reports suspicious constructs
gofumptStricter gofmt
gofmtFormats Go programs
goconstFind repeated Go literals that could be replaced with constants
go-ruleguardAnalysis-based Go linter that runs dynamically loaded rules
sloglintEnforce consistent structured logging conventions in Go
forbidigoGo linter for forbidding identifiers
godotKeep source code comments consistent
Godoc-LintEnforce consistent documentation comments in Go code
exhaustiveCheck Go switch statements for missing enum cases

Read our verdict in the software roundup.

Go Code Formatters
goimports-reviserSorts and groups imports by standard, third-party and project packages
gofumptEnforces stricter styling rules for cleaner, consistent source
gofmtApplies standardised indentation, spacing and source layout
golinesBreaks lengthy statements into readable, shorter lines
goimportsAutomatically adds missing imports and removes unused ones
gocondenseCombines multiline constructs to reduce unnecessary vertical space

Read our verdict in the software roundup.


Best Free and Open Source Software LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.

We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more.

Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion.

Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README.
Subscribe

Please read our Comment Policy before commenting.

Notify of
guest
0 Comments
Oldest
Newest Most Voted