82 votes

Faire en sorte que le formateur de code Java d'Eclipse ignore les commentaires de bloc

Existe-t-il un moyen de faire en sorte que le formateur de code Java intégré à Eclipse ignore les commentaires ? Chaque fois que je l'exécute, il se transforme en ceci :

    /*
     * PSEUDOCODE
     * Read in user's string/paragraph
     * 
     * Three cases are possible
     * Case 1: foobar
     *         do case 1 things
     * Case 2: fred hacker
     *         do case 2 things
     * Case 3: cowboyneal
     *         do case 3 things
     *         
     * In all cases, do some other thing
     */

dans ceci :

    /*
     * PSEUDOCODE Read in user's string/paragraph
     * 
     * Three cases are possible Case 1: foobar do case 1 things Case 2: fred
     * hacker do case 2 things Case 3: cowboyneal do case 3 things
     * 
     * In all cases, do some other thing
     */

J'ai déjà joué avec les paramètres de Windows > Préférences > Java > Style de code > Formateur mais je n'en trouve pas un qui permette de conserver le formatage des commentaires. J'utilise Eclipse 3.4.0.

0 votes

C'est juste là dans la configuration du formateur, je ne sais pas comment vous pouvez le manquer. Editez le profil, il y a une boîte de dialogue avec 8 onglets, le dernier onglet est pour le formatage des commentaires.

0 votes

Je vois bien l'onglet des commentaires, mais les problèmes de formatage se produisent quelle que soit la combinaison de cases à cocher que j'utilise.

0 votes

192voto

Michelle Crane Points 1221

Il existe une autre solution que vous pouvez utiliser pour supprimer le formatage de certains commentaires de bloc. Utilisez /*- (notez le trait d'union) au début du commentaire du bloc, et le formatage ne sera pas affecté si vous formatez le reste du fichier.

/\*-
 \* Here is a block comment with some very special
 \* formatting that I want indent(1) to ignore.
 \*
 \*    one
 \*        two
 \*            three
 \*/

Source : http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350

0 votes

Je n'ai jamais vu ça avant, même en dehors du contexte. +1 !

17 votes

Malheureusement, cela ne fonctionne qu'avec les commentaires de bloc "ordinaires", et non avec les commentaires Javadoc.

0 votes

Parfait pour la version : Juno Service Release 1. Merci, mon sauveur !

41voto

VonC Points 414372

Mise à jour 2010, comme pointé par l'OP y dans cette réponse la chaîne spéciale // @formatter:off dans Eclipse 3.6 est suffisant.

Il n'était pas disponible au moment de la question.


Réponse originale : Juin 2009, Eclipse 3.4/3.5

Avec le formateur Java ( Windows > Preferences > Java > Code Style > Formatter ), vous pouvez créer un nouveau profil de formateur.

Dans l'onglet Commentaires (dans eclipse3.5), vous pouvez vous assurer, dans le champ " Javadoc comment settings ", pour décocher " Format HTML tags ".
Consultez également la rubrique " Never join lines " dans le " General settings section ".

Alors votre commentaire devrait être écrit comme suit :

/**
 * PSEUDOCODE
 * Read in user's string/paragraph
 * 
 * Three cases are possible:
 * <dl>
 *   <dt>Case 1: foobar</dt>
 *     <dd>        do case 1 things</dd>
 *   <dt>Case 2: fred hacker</dt>
 *     <dd>        do case 2 things</dd>
 *   <dt>Case 3: cowboyneal</dt>
 *     <dd>        do case 3 things</dd>
 * </dl>        
 * In all cases, do some other thing
 */

Note : J'ai fait un Javadoc et non un simple commentaire, car je pense qu'un commentaire contenant autant de texte serait mieux placé devant une méthode. De plus, les sections Javadoc ont plus de paramètres de formatage avec lesquels jouer.
S'il se trouve devant une méthode (véritable Javadoc), la balise Balises HTML <dl> , <dt> y <dd> aidera à le présenter correctement dans la vue Javadoc.

1 votes

La partie pertinente de cette réponse, pour moi, était que les balises HTML ne sont PAS insérées automatiquement aux sauts de ligne et autres. C'est probablement évident pour la plupart, mais je n'avais pas réalisé que je devais coder manuellement des choses comme les <br>s jusqu'à ce que je le voie ici.

0 votes

@Lord Torgamus : non seulement vous devez ajouter des thosetags, mais la première phrase nécessite un période et un espace, avant le <br /> ! (voir bugs.sun.com/bugdatabase/view_bug.do?bug_id=4165985 )

0 votes

J'ai le même problème avec Scala dans Eclipse, mais les solutions ci-dessous sont spécifiques à Java, car l'onglet Scala code formatter a des options différentes. Existe-t-il un moyen de désactiver le formatage des commentaires pour Scala ?

27voto

Pops Points 10137

Un collègue vient de m'apprendre qu'Eclipse propose des balises de formatage spéciales qui peuvent être utilisées à cette fin :

// @formatter:off
/*
 * 
 *  Month   Sales  Position 
 * 
 *  June    44k    2nd      
 *  July    39k    2nd      
 *  August  49k    4th      
 * 
 *
 * This comment shouldn't be formatted, and will now be ignored by the formatter.
 */
// @formatter:on

Notez que vous devrez peut-être activer manuellement cette fonctionnalité par le biais du menu Préférences → Java > Style de code > Formateur, en cliquant sur le bouton Modifier en sélectionnant le Tags Off/On et en vérifiant Activation des balises Off/On ( source ).

Une recherche rapide sur Google pour la chaîne @formatter:off m'a amené à cette autre réponse de SO qui mentionnait cette fonctionnalité dans le contexte de la désactivation du formateur pour les blocs de code. J'ai confirmé que cela fonctionne également pour les commentaires de ligne, les commentaires de bloc "normaux" et les commentaires de bloc Javadoc.

0 votes

Comment avez-vous fait pour que cela fonctionne pour les commentaires JavaDoc ? J'ai constaté que je devais placer des commentaires de ligne avant et après les commentaires JavaDoc pour que cela fonctionne, comme vous l'avez fait pour le commentaire de bloc dans cette réponse. J'espérais pouvoir désactiver le formatage uniquement pour une section d'un commentaire JavaDoc.

0 votes

@MichaelScheper ça fait un moment, et je ne me souviens pas exactement... avez-vous essayé Le conseil de VonC ?

0 votes

C'est excellent, car cela indique à eclipse de ne pas formater le code également. Utile lorsque vous souhaitez conserver votre propre formatage.

20voto

Thomas Keller Points 1094

Une autre possibilité est d'utiliser le <pre> de HTML dans Javadoc :

/**
 * <pre>
 *    this
 *   is
 *      kept
 *  as
 *    is
 * </pre>
 */

En tout cas, c'est ainsi que j'ai tendance à intégrer mon art ASCII dans les commentaires du code source :)

2 votes

Veuillez noter qu'Eclipse formatera le contenu de la balise <pre></pre> s'il la considère comme un code java (sauf si vous décochez Fenêtre->Préférences->Java->Style de code->Formateur->Édition...[Bouton]->Commentaires[Onglet]->"Formater les extraits de code Java à l'intérieur des balises 'pre'").

9voto

Philip Points 59

Entourez le texte spécifique avec <pre> </pre> tags.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X