JDTでいくつかのクラスを生成しています。その後、Ctrl + Shift + F(ソース>書式)を選択せずに開いたエディタで押すのと同じように、ICompilationUnit全体を書式設定したいと思います。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);
}
このことができますファイルをJavaソースをフォーマットするには、以下の方法を使用しますが、それはすべて解決するエレガントdoens't:
フォーマット自体は次のように行われています必要な書式のI.長いメソッド宣言を多くのパラメータで手作業で分割する必要があります。 –
非常に興味深い問題です。私はあなたがしていることを見て、私は自分の答えを編集しました。ありがとう。 – Ryan
こんにちはRyan、私は 'CodeFormatter.K_UNKNOWN'を使うために上記のコードを変更しましたが、それはどちらもうまくいきませんでした。その後、 'targetUnit.applyTextEdit'(' ICompilationUnit'の内部 'IDocument'に' apply()を実行します)の呼び出しの後に 'targetUnit.getSource()'をチェックし、不思議なことに変更が適用されたようです。しかし、ファイルには適用されません。これはバグですか、何か不足していますか? –