के साथ प्रोग्रामेटिक रूप से फॉर्मेटिंग स्रोत कोड मैं जेडीटी के साथ कुछ कक्षाएं उत्पन्न कर रहा हूं। बाद में मैं पूरे ICompilationUnit को प्रारूपित करना चाहता हूं, जैसे कि मैंने चयन के बिना एक खुले संपादक में Ctrl + Shift + F (Source> Format) दबाया।जेडीटी
जेडीटी में एपीआई के लिए किसी भी पॉइंटर्स को प्रोग्राम कोड को प्रारूपित करने के लिए अत्यधिक सराहना की जाती है।
अतिरिक्त: मैंने इसे इस तरह से आजमाया, लेकिन कोड नहीं बदला गया है। मैं क्या कर रहा हूँ?
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);
}
यह मदद करता है, लेकिन यह सुंदर ढंग से doens't सभी का समाधान वांछित स्वरूपण का। अर्थात। आपको कई पैरामीटर के साथ लंबी विधि घोषणाओं को मैन्युअल रूप से तोड़ने की आवश्यकता होगी। –
बहुत ही रोचक समस्या। मैं देखता हूं कि आप क्या कर रहे हैं, और मैंने अभी अपना जवाब संपादित किया है। धन्यवाद। – Ryan
हाय रयान, मैंने उपरोक्त कोड को 'CodeFormatter.K_UNKNOWN' का उपयोग करने के लिए बदल दिया, लेकिन यह भी काम नहीं करता था। बाद में मैंने 'targetUnit.applyTextEdit'' पर कॉल के बाद 'targetUnit.getSource()' की जांच की (जो 'ICompilationUnit' के आंतरिक' IDocument' पर 'लागू() 'है, और अजीब रूप से परिवर्तन लागू होने लगते हैं। लेकिन वे फ़ाइल पर लागू नहीं हैं। क्या यह बग है या मैं कुछ भूल गया हूं? –