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.