2014-07-10 54 views
3

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

+0

我们都在等待类似的东西。有一个基于go oracle的重构工具,但仍未公开。 – fabrizioM

回答

6

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

gofmt -w -r 'OldFoo -> Foo' foopackage 

从文档:

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

编辑:今天,有对于更好的工具:gorename为重命名和eg一般重构。

+0

这不是简单的字符串替换吗?在那种情况下,它不是重构。 –

+0

@BjörnPollex从那时起,Go团队创建了一个更精确的工具'gorename'。见韦德的答案。 –

2

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