Eclipse插件开发(JDT):带有大括号的Surround if语句

时间:2014-08-21 05:17:40

标签: eclipse eclipse-plugin eclipse-jdt

可以在一行语句中定义if-else。

if (isFormed)
        if (i == 1)
            System.out.println("i is 1");
        else
            System.out.println("i is undefined");

我需要在使用我的eclipse插件的大括号语句中包围一行。

这就是我试过的

node.accept(new ASTVisitor() {
                    @Override
                    public boolean visit(IfStatement ifStatement) {
                        //Add Block in case of IfStatemnet if it is not there.
                        if(ifStatement != null){
                            Statement thenStatement = ifStatement.getThenStatement();
                            Statement elseStatement = ifStatement.getElseStatement();
                            String codeToReplace = "if("+ifStatement.getExpression()+")";
                            if(thenStatement instanceof Block)
                                codeToReplace += "\n"+ thenStatement + "";
                            else
                                codeToReplace += "{\n"+ thenStatement + "\n}";
                            if(elseStatement != null){
                                if(elseStatement instanceof Block)
                                    codeToReplace += "else" + elseStatement +"\n";
                                else
                                    codeToReplace += "else{\n" + elseStatement +"\n}";
                            }
                            replaceStatment(rewriter, getBlockInstence(ifStatement), codeToReplace , ifStatement);
                        }
                        return super.visit(ifStatement);
                    }
                });

这适用于外部if,但不适用于内部if / else。

P.S。:在首选项中使用格式化程序可以做到这一点。我必须将这部分插入我的插件中。

1 个答案:

答案 0 :(得分:1)

这是另一种方法。在Eclipse中打开首选项,转到 Java - >编辑 - >保存操作。启用保存操作,然后单击配置。转到“代码样式”选项卡,然后启用“控制语句”下的选项。

这将在每次保存文件时执行您想要的操作。

enter image description here