Formatting Source Code programmatically with JDT

前端 未结 3 1424
-上瘾入骨i
-上瘾入骨i 2021-01-05 09:09

I am generating some classes with JDT. Afterwards I would like to format the whole ICompilationUnit, just as if I pressed Ctrl+Shift+F (Source > Format) in an open Editor wi

3条回答
  •  情话喂你
    2021-01-05 09:56

    When generating some classes by using JDT, you can put "\t"s in your source code. Or like what you did, using code formatter. I have tested the following code:

    public static void main(String[] args)
    {
        String code = "public class TestFormatter{public static void main(String[] args){System.out.println(\"Hello World\");}}";
        CodeFormatter codeFormatter = ToolFactory.createCodeFormatter(null);
    
        TextEdit textEdit = codeFormatter.format(CodeFormatter.K_UNKNOWN, code, 0,code.length(),0,null);
        IDocument doc = new Document(code);
        try {
            textEdit.apply(doc);
            System.out.println(doc.get());
        } catch (MalformedTreeException e) {
            e.printStackTrace();
        } catch (BadLocationException e) {
            e.printStackTrace();
        }   
    }
    

    The apply() method does the trick here.

提交回复
热议问题