Skip to content

cmd/gofmt: gofmt -r should preserve multiline formatting #18677

@rogpeppe

Description

@rogpeppe

go version devel +ac05542 Wed Jan 11 01:39:54 2017 +0000 linux/amd64

gofmt -r does not work well when rewriting multi-line expressions.

Given this code:

package x

func f() {
	Foo{
		X: 99,
		Y: "hello",
	}
}

running:

gofmt -r 'Foo{X: a, Y: b} -> Foo{
    X: a,
    Y: []byte(b),
}'

results in:

package x

func f() {
	Foo{X: 99, Y: []byte(

		"hello")}

}

In general, if the replacement expression contains multiple lines, their
placement is ignored.

Metadata

Metadata

Assignees

No one assigned

    Labels

    NeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions