Search code examples
eclipsecommentsformatter

Making Eclipse's Java code formatter ignore block comments


Is there a way to make Eclipse's built-in Java code formatter ignore comments? Whenever I run it, it turns this:

    /*
     * 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
     */

into this:

    /*
     * 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
     */

I have already played around with the Windows > Preferences > Java > Code Style > Formatter settings but can't find one for keeping comment formatting. I'm using Eclipse 3.4.0.


Solution

  • Update 2010, as pointed by the OP and in this answer, the special string // @formatter:off in Eclipse 3.6 is enough.

    It was not available at the time of the question.


    Original answer: June 2009, Eclipse 3.4/3.5

    With the Java Formatter (Windows > Preferences > Java > Code Style > Formatter), you can create a new Formatter profile.

    In the Comments tab (in eclipse3.5), you can make sure, in the "Javadoc comment settings", to uncheck "Format HTML tags".
    Check also the "Never join lines" in the "General settings" section.

    Then your comment should be written as:

    /**
     * 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: I have made a Javadoc comment, and not a simple comment, as I believe a comment with that much text in it may be better placed in front of a method. Plus, Javadoc sections have more formatting parameters to play with.
    If it is in front of a method (true Javadoc), the HTML tags <dl>, <dt> and <dd> will help to present it properly within the Javadoc view.