util/codegen: format generated code with goimports, not gofmt

goimports is a superset of gofmt that also groups imports.
(the goimports tool also adds/removes imports as needed, but that
part is disabled here)

Change-Id: Iacf0408dfd9497f4ed3da4fa50e165359ce38498
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2022-04-29 13:30:54 -07:00
committed by Brad Fitzpatrick
parent 6bed781259
commit 373176ea54
2 changed files with 9 additions and 3 deletions

View File

@@ -9,12 +9,12 @@ import (
"bytes"
"fmt"
"go/ast"
"go/format"
"go/token"
"go/types"
"os"
"golang.org/x/tools/go/packages"
"golang.org/x/tools/imports"
)
// WriteFormatted writes code to path.
@@ -29,7 +29,12 @@ import (
// It is also easier to interpret gofmt errors
// with an editor providing file and line numbers.
func WriteFormatted(code []byte, path string) error {
out, fmterr := format.Source(code)
out, fmterr := imports.Process(path, code, &imports.Options{
Comments: true,
TabIndent: true,
TabWidth: 8,
FormatOnly: true, // fancy gofmt only
})
if fmterr != nil {
out = code
}