Exporte variáveis ​​facilmente com gofmt

Então você escreveu um monte de código e agora percebe que muitos métodos / variáveis ​​/ campos internos que você pensava que só precisavam permanecer internos, agora realmente precisam ser exportados.

Você olha para suas macros Find-and-Replace e fica desesperado porque a variável que deseja exportar é “x”, mas você tem variáveis ​​como “xSomethingElse”.

Não se preocupe, gofmt vem para resgatá-lo.

Vamos supor que seu código seja assim:

package main
import "fmt"

type useless
struct {
var1
int
var2
int
}

func main
() {
x
:= useless{1,2}
fmt
.Println(x.var1 * x.var2)
}

Você pode executar este comando gofmt -r 'var1 -> Var1'para reformatar seu código. Agora ficará assim:

package main
import "fmt"

type useless
struct {
Var1 int
var2
int
}

func main
() {
x
:= useless{1,2}
fmt
.Println(x.Var1 * x.var2)
}

Gofmt recompensa os programadores que são cuidadosos com suas convenções de nomenclatura. Isso não vai funcionar se você fizer isso: gofmt -r 'var1 -> x'. Isso vai bagunçar o formatador e seu código pode acabar mais ou menos assim:

package x
import "fmt"

type x x


func x
() {
x
:= x
x

}

Isso significa que, se você tiver coisas como structs com campos com o mesmo nome, ainda terá que localizar e substituir manualmente usando Ctrl + H.