当前位置: 首页 > 知识库问答 >
问题:

如何使用Eclipse JDT代码格式化程序在方法和类型注释之后插入新行?

王航
2023-03-14
@Annotation1 
@Annotation2
@Annotation3
@Annotation4 
public class TheClass {

    private static final int PAGE_SIZE = 10;

    @Annotation5 
    private Object o1;

    @Annotation5 
    private Object o2;


    @Annotation6
    @Annotation7 
    public void doSomething(@Annotation8 @Annotation Object dto) {
         // some works
    }
}

这是格式化程序代码:

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();
}

共有1个答案

魏浩广
2023-03-14

对于注释的每个可能的上下文,DefaultCodeFormatterOptions对注释后的新行都有单独的字段

public boolean insert_new_line_after_annotation_on_type;
public boolean insert_new_line_after_annotation_on_field;
public boolean insert_new_line_after_annotation_on_method;
public boolean insert_new_line_after_annotation_on_package;
public boolean insert_new_line_after_annotation_on_parameter;
public boolean insert_new_line_after_annotation_on_local_variable;

所以我猜insert_new_line_after_annotation_on_type就是答案...我已经用IDE本身而不是API检查了这种行为是否符合预期。

这是2014年2月该提交为修复bug/feature 425040而添加的相对较新的内容。它在我面前的eclipse 4.4.0中可用

 类似资料:
  • 我正在使用org。日食jdt。果心格式化程序。代码格式化程序类。我对正确设置评论的格式有问题。谁能告诉我应该使用DefaultCodeFormatterConstants中的哪些选项来正确格式化注释块? 我有这样的情况: 我想把它格式化成 甚至如何格式化评论块,就像我的例子一样,这些评论根本没有格式化。

  • 问题内容: 什么是最好的在线代码美化器和格式化器?我不是在要求荧光笔。任何语言都可以。 问题答案: CSS:代码美化器 HTML:HTML Tidy,CleanUp HTML或通用的Pretty Diff Javascript:http://jsbeautifier.org/ PHP:http://beta.phpformatter.com/ SQL:http://dpriver.com/pp/s

  • 关于使用强化代码注释的名称和语法,我有一个问题。 简短、简短、非常简短的版本是:我正在寻找一个指南/手册,它将列出可用的代码内注释,并为它们的预期用途提供一个示例。专门用于从Fortify扫描结果中省略一组“SQL注入”和“SQL注入:持久性”问题。 TL;博士;细节: 强化版:19.1.0 平台:Java 8;Web App(Weblogic 12.2.1.4.0(12c));Redhat Un

  • 问题内容: 我知道这不是最重要的问题,但是我刚刚意识到我可以将Javadoc注释块放在注释之前或之后。我们想采用什么作为编码标准? 问题答案: 在注释之前,由于注释是“属于”该类的代码。请参阅官方文档中带有javadoc的示例。 这是我在另一个官方Java页面上发现的随机示例:

  • 我正在尝试Eclipse自动格式化程序,但我找不到合适的选项来按照我的喜好格式化。

  • 问题内容: 我正在使用JDT生成一些类。之后,我想格式化整个ICompilationUnit,就像我在没有选择的打开的编辑器中按Ctrl + Shift + F(源>格式)一样。 高度赞赏JDT中用于以编程方式格式化源代码的API的任何指针。 另外:我像这样尝试过,但是代码没有改变。我在说什么 问题答案: 这可能是一个错误,但是使用Elcipse 4.2.2中的JDK时,有必要创建ICompila