Bad line breaking in Eclipse javadoc comments

2019-05-05 02:41发布

问题:

There's a minor but annoying bug, I think, in the Eclipse built-in Java formatter. I have a Javadoc comment that looks like this:

/**
 * - - - stuff - - - {@code mTasksBelow}.
 */

where period at the end is in column 81. The formatter is set to wrap Javadoc comments at line 80. Unfortunately, when I format the code, it does this:

/**
 * - - - stuff - - - {@code mTasksBelow}
 * .
 */

This puts white space between the text and the period in the generated output, so a browser rendering the Javadoc in HTML, for instance, will also think it's okay to break there.

This doesn't seem to happen unless the period follows a Javadoc tag. (For instance, if the line ended with a closing parenthesis and a period in column 81, it would correctly break before the last word.)

I could move the wrap column, but that would just move the problem. I don't want to turn off line breaks, because I like my Javadoc source to be as readable as the generated output. Is there some setting I'm missing or is this actually a bug?

回答1:

Well there is a less than fun work around for this. To work around it try enabling Off/On Tags in the Eclipse formatter.

Window -> Preferences -> Java -> Formatter -> Edit -> Off/On Tags -> Enable Off/On tags

Then you need to surround your comment with these tags so the formatter does not touch it (Note that the tags need to be in separate comment blocks else Eclipse will ignore them). In example:

//@formatter:off
/**
 * Oddly formatted comment.              MUHAHAHAHAH :)
 **/
//@formatter:on

Presto... formatter won't touch it. Tested on Juno on Fedora 17. Hope that helps.



回答2:

Well, it is now a new Eclipse bug. It will evidently still be present in the initial Indigo release.