在Eclipse中,是否有自动转换以下代码的方法:
int myX, myY, myZ;
...至此...
int myX;
int myY;
int myZ;
我以为可以通过“清理”和“成员排序”偏好设置来完成这个操作,但它并没有将多个声明分解成每行一个。有没有办法实现呢?
编辑:澄清一下,这是关于成员变量的。
在Eclipse中,是否有自动转换以下代码的方法:
int myX, myY, myZ;
...至此...
int myX;
int myY;
int myZ;
我以为可以通过“清理”和“成员排序”偏好设置来完成这个操作,但它并没有将多个声明分解成每行一个。有没有办法实现呢?
编辑:澄清一下,这是关于成员变量的。
虽然我不知道有没有一种函数可以做到这一点,但您可以通过几个按键来获得类似的结果:
高亮显示包含多个变量定义的行,并使用查找/替换功能(按键:Ctrl-F
)将逗号空格序列替换为分号、空格和变量类型。请确保范围设置为“所选行”,如下图所示:
现在,你仍然有一行包含所有变量声明的行。这可以通过突出显示相同的行和源代码 > 格式化功能(按键:Shift-Ctrl-F
)来修复。
完成了,现在您有了各自类型的变量,每个变量占一行:
org.eclipse.jdt.internal.ui.fix.VariableDeclarationCleanUp
看起来像是一个潜在的例子和指南。MultipleVariableDeclarations
,如下所示:<module name="Checker">
<module name="TreeWalker">
<property name="cacheFile" value="target/cachefile"/>
<property name="tabWidth" value="4"/>
...
<module name="MultipleVariableDeclarations"/>
...
</module>
</module>
astyle
和GC GreatCode
是两个不错的代码格式化工具。
GC GreatCode
被认为是C/C++代码格式化工具,但在这种情况下,它也可以很好地格式化您的代码。GC
中,拆分变量声明的选项是-code_split_decl_style
原始代码:String fileName, a, b, c;
使用-code_split_decl_style-1
选项:
String fileName,
a,
b,
c;
使用 -code_split_decl_style-2
选项:
String fileName;
String a;
String b;
String c;
{
if (match($0,/([a-z|A-Z|0-9|_]+)\s+(([a-z|A-Z|0-9|_]+)\s*,\s*)+([a-z|A-Z|0-9|_]+);/)) {
match($0,/(\s*[a-z|A-Z|0-9|_]+)\s+([^;]*)/,components);
split(components[2],vars,",");
for(i in vars) {
gsub (/'[[:cntrl:]]|[[:space:]]|\x20/,"",vars[i])
print components[1],vars[i]";"
}
}
else {
print $0;
}
}
awk -f script.awk target_file.java
for f in *.java; do awk -f awk1.awk $f > $f.pr; done
据我所知,Eclipse没有这样的现成功能。
我假设你是一名Java程序员,因此你最好编写一个简单的程序来解析出这种模式的源代码,并将其转换为所需的多行格式。然后在其上运行清理操作,以使其按照要求正确格式化。