Подтвердить что ты не робот

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

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

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

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

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

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

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

Источник

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

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

 Paragraph One

 Paragraph Two

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

 Paragraph One Paragraph Two
4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Обновление: в Netbeans 8.x есть опция форматирования кода, чтобы отключить форматирование комментариев.

Ответ 3

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

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

enter image description here

Ответ 4

Я согласен с вами, 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

Ответ 5

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

p {
    line-height: 25px;
}

Ответ 6

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

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

div.block {
    white-space: pre;
}

Ответ 7

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