我正在使用JDT生成一些類。之後,我想格式化整個ICompilationUnit,就好像我在沒有選擇的情況下在打開的編輯器中按Ctrl + Shift + F(Source> Format)。通過編程與JDT格式化源代碼
非常感謝JDT中的API以編程方式對源代碼進行格式化的任何指針。
此外:我試過這樣,但代碼沒有改變。我在想什麼?
private void formatUnitSourceCode(ICompilationUnit targetUnit, IProgressMonitor monitor) throws JavaModelException {
CodeFormatter formatter = ToolFactory.createCodeFormatter(null);
TextEdit formatEdit = formatter.format(CodeFormatter.K_COMPILATION_UNIT, targetUnit.getSource(), 0, targetUnit.getSource().length(), 0, null);
targetUnit.applyTextEdit(formatEdit, monitor);
}
這會有所幫助,但它好好嘗試一下完美地解決所有想要的格式。 I. e。你需要用很多參數手動打破長方法聲明。 –
非常有趣的問題。我明白你在做什麼,我只是編輯了我的答案。謝謝。 – Ryan
嗨瑞安,我改變了我的代碼上面使用'CodeFormatter.K_UNKNOWN',但那也沒有工作。之後,我在調用'targetUnit.applyTextEdit'(在'ICompilationUnit'的內部'IDocument'上做'apply()''')之後,檢查了'targetUnit.getSource()',奇怪的是這些改變似乎被應用了。但它們不適用於該文件。這是一個錯誤,還是我錯過了什麼? –