# By default, this rule isn't enabled. gofumpt foo.go cmp stdout foo.go # It's run with -extra. Note that the flag isn't available in gofumports, # following the lack of -s. [!gofumpt] skip gofumpt -extra foo.go cmp stdout foo.go.golden gofumpt -d foo.go.golden ! stdout . -- foo.go -- package p type f func(x int, y int) int type i interface { add(x int, y int) } type s struct { x int y int } func mergeAdjacent(x int, y int) {} func mergeThreeAdjacent(x int, y int, z int) {} func mergeOneWithTwo(x, y int, z int) {} func mergeTwoWithOne(x int, y, z int) {} func mergeWithComment( x int, y int, // comment ) func mergeAllSyntax(x chan []*foo.Bar, y chan []*foo.Bar) {} func dontMergeAnonymousParams(int, int) {} func dontMergeMultipleLines( x int, y int, ) { } func dontMergeMultipleLines2( x, y int, z int, ) { } -- foo.go.golden -- package p type f func(x, y int) int type i interface { add(x, y int) } type s struct { x int y int } func mergeAdjacent(x, y int) {} func mergeThreeAdjacent(x, y, z int) {} func mergeOneWithTwo(x, y, z int) {} func mergeTwoWithOne(x, y, z int) {} func mergeWithComment( x, y int, // comment ) func mergeAllSyntax(x, y chan []*foo.Bar) {} func dontMergeAnonymousParams(int, int) {} func dontMergeMultipleLines( x int, y int, ) { } func dontMergeMultipleLines2( x, y int, z int, ) { }