可重构的IDE for Go:变量、函数、结构和包重命名

可重构的IDE for Go:变量、函数、结构和包重命名,ide,go,refactoring,renaming,automated-refactoring,Ide,Go,Refactoring,Renaming,Automated Refactoring,我对任何能够重构Go源代码以进行变量重命名的IDE(甚至脚本)都感兴趣。例如,在Eclipse For Java中,可以选择一个变量、一个对象或一个类,然后重命名它,然后在项目中的所有文件中自动重命名它。如果自动字符串替换可能导致子字符串冲突,则此功能非常有用。如果您对脚本感兴趣,请与-r标志一起使用。像这样: gofmt -w -r 'OldFoo -> Foo' foopackage 从文档中: 如果没有显式路径,它将处理标准输入。给定一个文件,它对该文件进行操作;给定一个目录,它递

我对任何能够重构Go源代码以进行变量重命名的IDE(甚至脚本)都感兴趣。例如,在Eclipse For Java中,可以选择一个变量、一个对象或一个类,然后重命名它,然后在项目中的所有文件中自动重命名它。如果自动字符串替换可能导致子字符串冲突,则此功能非常有用。

如果您对脚本感兴趣,请与
-r
标志一起使用。像这样:

gofmt -w -r 'OldFoo -> Foo' foopackage
从文档中:

如果没有显式路径,它将处理标准输入。给定一个文件,它对该文件进行操作;给定一个目录,它递归地对该目录中的所有.go文件进行操作。(忽略以句点开头的文件。)默认情况下,gofmt将重新格式化的源打印到标准输出


编辑:今天有更好的工具用于此:用于重命名和一般重构。

该工具对Go源代码中的标识符执行精确的类型安全重命名

我们都在等待类似的事情。有一个基于go oracle的重构工具,但还没有公开。这不是简单的字符串替换吗?在这种情况下,它不是重构。@BjörnPollex从那时起,Go团队创建了一个更精确的工具,名为
gorename
。见维特的答案。