it-swarm.com.ru

Javadoc: разрывы строк без HTML-тегов?

Извините за возможный вопрос типа FAQ, но я просто не могу найти ответ.

Насколько я помню Eclipse, пустая строка в комментарии Javadoc отображается (во всплывающих окнах Javadoc в исходном коде) как разрыв строки (с дополнительным вертикальным интервалом).

В Netbeans, однако, это не так.

Могу ли я настроить Javadoc для интерпретации пустой строки как перенос строки?

Дополнительный вопрос: можно ли переопределить поведение Netbeans по умолчанию (связанное с этим) для всплывающих окон Javadoc в исходном коде?

То, о чем я говорю, это:

Источник

/**
 * Paragraph One
 *
 * Paragraph Two
 */
 void someMethod() { }

Затмение интерпретации

 Paragraph One

 Paragraph Two

Интерпретация NetBeans

 Paragraph One Paragraph Two
70
java.is.for.desktop

Это не имеет ничего общего с Netbeans. Я подозреваю, что вы смотрите на исходный код в одном случае и вывод Javadoc в другом случае. Новые строки не имеют значения в HTML: ergo вывод не будет их отображать Если вы хотите новую строку, используйте <p> или <br>.

68
user207421

Я не уверен, поможет ли это в случае с OP, но я поставил <pre></pre> вокруг моего документа, чтобы netbean не испортило мое форматирование. Так будет выглядеть

/**
 * <pre>
 * Paragraph One
 *
 * Paragraph Two
 * </pre>
 */

Это ближе всего я показываю новые строки в текстовом формате. Я использую NetBeans 7.1.2. Таким образом, использование опции code format не переформатирует документ. Показ документа в подсказках все еще отформатирован.

Обновление: в Netbeans 8.x в форматировании кода есть возможность отключить форматирование комментариев.

30
AaA

В NetBeans уже есть опция, протестированная на версии 8.2, которая позволяет сохранять новые строки в комментариях и/или добавлять тег <p> к вашему Javadoc при необходимости.

  • Просто из меню Tools выберите Options
  • Перейдите на вкладку Editor, затем на вкладку Formatting
  • В меню Language выбрал Java, а в меню Category выбрал Comments
  • Установите флажок Preserve New Lines в разделе General, если вы хотите сохранить новые строки в ваших комментариях. Это сохранит новые строки без добавления тега <p>
  • Установите флажок Generate "<p>" on Blank Lines в разделе Javadoc, если вы также хотите добавить тег <p>.

enter image description here

10
fujy

Я согласен с вами, HTML не входит в исходный код. К сожалению, я не нашел особой помощи, погугливая по этому поводу. Это на самом деле довольно легко реализовать.

Вот пользовательский Doclet, который вы можете скомпилировать и использовать:

import com.Sun.javadoc.*;
import com.Sun.tools.doclets.standard.*;

/**
 * Formats text-only comments with HTML.
 */
@SuppressWarnings("restriction")
public final class TextDoclet {
    private static final Pattern NEWLINE_REGEX = Pattern.compile("\\n");
    private static final String BR = "<br/>\n";

    public static boolean start(RootDoc rootDoc) {
        for ( ClassDoc classdoc : rootDoc.classes())
            classdoc.setRawCommentText(formatText(classdoc.getRawCommentText()));

        return Standard.start(rootDoc);     
    }

    private static String formatText(String text) {
        return NEWLINE_REGEX.matcher(text).replaceAll(BR);
    }
}

Пример того, как вызвать его, используя javadoc:

javadoc -docletpath ~/project/text-doclet/target/text-doclet-1.0.0-SNAPSHOT.jar -doclet com.myorg.textdoclet.TextDoclet -sourcepath ~/project/myapp/src/main/Java -subpackages com.myorg.myapp
4
roylaurie

JavaDoc отображает способ определения стилей CSS. Вы можете отредактировать стили CSS, связанные с тегами абзаца, чтобы сделать это:

p {
    line-height: 25px;
}
2
adarshr

Это псевдо-решение
(что, к сожалению, влияет только на сгенерированный Javadoc, но не влияет на отображение Javadoc в Netbeans).

Укажите таблицу стилей, которая содержит следующее:

div.block {
    white-space: pre;
}
1
java.is.for.desktop

Я понятия не имею, что здесь делает Eclipse, но если вам нужно такое поведение в целом (не только в IDE), вам, возможно, придется создать новый Doclet (который может быть основан на HTML-доклете по умолчанию), вставив туда <p> на каждой пустой строке или тому подобное.

0
Paŭlo Ebermann