Tôi đang tạo một số lớp với JDT. Sau đó, tôi muốn định dạng toàn bộ ICompilationUnit, giống như khi tôi nhấn Ctrl + Shift + F (Nguồn> Định dạng) trong Trình chỉnh sửa mở mà không có lựa chọn.Mã định dạng nguồn lập trình với JDT
Bất kỳ con trỏ nào cho API trong JDT để định dạng mã nguồn được lập trình đều được đánh giá cao.
Ngoài ra: Tôi đã thử nó như thế này, nhưng mã không bị thay đổi. Tôi đang làm gì?
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);
}
này giúp, nhưng nó doens't tao nhã giải quyết tất cả của định dạng mong muốn. I E. bạn sẽ cần phải hướng dẫn sử dụng phá vỡ khai báo phương thức dài với nhiều tham số. –
Vấn đề rất thú vị. Tôi thấy những gì bạn đang làm, và tôi chỉ chỉnh sửa câu trả lời của tôi. Cảm ơn. – Ryan
Hi Ryan, tôi đã thay đổi mã của mình ở trên để sử dụng 'CodeFormatter.K_UNKNOWN', nhưng điều đó cũng không hoạt động. Sau đó, tôi đã kiểm tra 'targetUnit.getSource()' sau khi gọi tới 'targetUnit.applyTextEdit' (mà có' apply() 'trên' IDocument' bên trong của 'ICompilationUnit'), và những thay đổi dường như được áp dụng một cách kỳ lạ. Nhưng chúng không được áp dụng cho tệp. Đây có phải là một lỗi, hoặc tôi đang thiếu một cái gì đó? –