2015-02-03 5 views
5

मैं ग्रहण जेडीटी का उपयोग नीचे के रूप में मेरी उत्पन्न जावा फ़ाइलों को स्वरूपित करने:प्रोग्रामेटिक रूप से इंटेलिज आईडीईए कोड फॉर्मेटर का उपयोग कैसे करें?

public String format(String code) 
     throws MalformedTreeException, BadLocationException { 
    Map options = new java.util.HashMap(); 
    options.put(JavaCore.COMPILER_SOURCE, "1.5"); 
    options.put(JavaCore.COMPILER_COMPLIANCE, "1.5"); 
    options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, "1.5"); 

    DefaultCodeFormatterOptions cfOptions = 
      DefaultCodeFormatterOptions.getDefaultSettings(); 
    cfOptions.insert_new_line_after_annotation = false; 
    cfOptions.comment_insert_new_line_for_parameter = true; 

    cfOptions.blank_lines_before_method = 1; 
    cfOptions.number_of_empty_lines_to_preserve= 1; 

    cfOptions.tab_char = DefaultCodeFormatterOptions.SPACE; 

    CodeFormatter cf = new DefaultCodeFormatter(cfOptions, options); 

    TextEdit te = cf.format(CodeFormatter.K_UNKNOWN, code, 0, 
      code.length(), 0, null); 
    IDocument dc = new Document(code); 

    te.apply(dc); 
    return dc.get(); 
} 

लेकिन सवाल यह है कि मैं के रूप में ऊपर प्रोग्राम के रूप में IntelliJ विचार कोड फ़ॉर्मेटर एपीआई का उपयोग कर सकते हैं? क्या जेटब्रेन ने कोई एपीआई पेश किया है?

उत्तर

1

हां, आप IntelliJ में प्रोग्रामेटिक रूप से कोड प्रारूपित कर सकते हैं।

ऐसा करने के लिए महत्वपूर्ण है:

CodeStyleManager styleManager = CodeStyleManager.getInstance(project); 
PsiElement psiFile = event.getData(LangDataKeys.PSI_FILE); 
styleManager.reformat(psiFile); 

मुझे लगता है कि सिर्फ इस करता है एक उदाहरण प्लगइन है। इसे here देखें।

संबंधित मुद्दे