web-dev-qa-db-fra.com

Javadoc: les sauts de ligne sans balises HTML?

Désolé pour un type de question probable FAQ, mais je ne trouve pas la réponse.

Autant que je me souvienne d'Eclipse, une ligne vide dans un commentaire Javadoc est affichée (dans les fenêtres contextuelles Javadoc in-source) sous la forme d'un saut de ligne (avec un espacement vertical supplémentaire).

Dans Netbeans, cependant, ce n'est pas le cas.

Puis-je configurer Javadoc pour interpréter une ligne vide comme un saut de ligne?

Question supplémentaire: Puis-je remplacer le comportement Netbeans par défaut (lié à cela) pour les popups Javadoc in-source?

Ce dont je parle est:

La source

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

Interprétation de l'éclipse

 Paragraph One

 Paragraph Two

Interprétation Netbeans

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

Cela n'a rien à voir avec Netbeans. Je suppose que vous examinez le code source dans un cas et la sortie de Javadoc dans l'autre cas. Les nouvelles lignes ne sont pas significatives en HTML: ergo la sortie ne les montrera pas. Si vous voulez une nouvelle ligne, utilisez un <p> ou un <br>.

68
user207421

Je ne suis pas sûr que cela aide le cas de OP, cependant j'ai mis <pre></pre> Autour de mon document pour que netbean ne gâche pas ma mise en forme. Alors ça va ressembler

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

C’est au plus près de la présentation de nouvelles lignes au format texte. J'utilise NetBeans 7.1.2. De cette façon, l’utilisation de l’option code format Ne reformatera pas le document. La présentation de doc dans les astuces est toujours formatée.

Mise à jour: dans Netbeans 8.x, une option de mise en forme du code permet de désactiver la mise en forme des commentaires.

33
AaA

Il existe déjà une option dans NetBeans - testée sur la version 8.2 - qui vous permet de conserver de nouvelles lignes dans vos commentaires et/ou d’ajouter une balise <p> À votre Javadoc if nécessaire

  • Juste dans le menu Tools, choisissez Options
  • Allez à l'onglet Editor, puis à l'onglet Formatting
  • Dans le menu Language, choisissez Java, et dans le menu Category, Comments
  • Cochez la case Preserve New Lines Dans la section General si vous souhaitez conserver de nouvelles lignes dans vos commentaires. Ceci préservera les nouvelles lignes sans ajouter de balise <p>
  • Cochez la case Generate "<p>" on Blank Lines Dans la section Javadoc si vous souhaitez également ajouter la balise <p>.

enter image description here

10
fujy

Je suis d'accord avec vous, HTML n'appartient pas au code source. Malheureusement, je n'ai pas trouvé beaucoup d'aide pour googler. C'est en fait assez facile à mettre en œuvre.

Voici le Doclet personnalisé que vous pouvez compiler et utiliser:

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

Un exemple de comment l'invoquer à l'aide de 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 affiche la manière dont les styles CSS ont été définis. Pour ce faire, vous pouvez modifier les styles CSS associés aux balises de paragraphe:

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

C'est une pseudo-solution
(qui n'affecte malheureusement que le javadoc généré, mais pas affecte l'affichage javadoc dans la source de Netbeans).

Spécifiez une feuille de style contenant les éléments suivants:

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

Je ne sais pas du tout ce qu'Eclipse fait ici, mais si vous voulez ce comportement en général (pas seulement un IDE), vous devrez peut-être créer un nouveau Doclet (qui peut être basé sur le doclet HTML par défaut), insérant un <p> à chaque ligne vide ou telle.

0
Paŭlo Ebermann