View | Details | Raw Unified | Return to bug 295238 | Differences between
and this patch

Collapse All | Expand All

(-)formatter/org/eclipse/jdt/internal/formatter/Scribe.java (-1 / +5 lines)
Lines 1561-1566 Link Here
1561
		boolean hasMultiLines = false;
1561
		boolean hasMultiLines = false;
1562
		boolean hasTokens = false;
1562
		boolean hasTokens = false;
1563
		boolean bufferHasTokens = false;
1563
		boolean bufferHasTokens = false;
1564
		boolean bufferHasNewLine = false;
1564
		boolean lineHasTokens = false;
1565
		boolean lineHasTokens = false;
1565
		int hasTextOnFirstLine = 0;
1566
		int hasTextOnFirstLine = 0;
1566
		boolean firstWord = true;
1567
		boolean firstWord = true;
Lines 1595-1600 Link Here
1595
						this.column += tokensBuffer.length();
1596
						this.column += tokensBuffer.length();
1596
						tokensBuffer.setLength(0);
1597
						tokensBuffer.setLength(0);
1597
						bufferHasTokens = true;
1598
						bufferHasTokens = true;
1599
						bufferHasNewLine = false;
1598
					}
1600
					}
1599
					if (previousToken == -1) {
1601
					if (previousToken == -1) {
1600
						// do not remember the first whitespace
1602
						// do not remember the first whitespace
Lines 1710-1715 Link Here
1710
		    		this.column += BLOCK_LINE_PREFIX_LENGTH;
1712
		    		this.column += BLOCK_LINE_PREFIX_LENGTH;
1711
		    		firstWord = true;
1713
		    		firstWord = true;
1712
					multiLines = true;
1714
					multiLines = true;
1715
					bufferHasNewLine = true;
1713
				}
1716
				}
1714
				insertSpace = insertSpace && linesGap == 0;
1717
				insertSpace = insertSpace && linesGap == 0;
1715
			}
1718
			}
Lines 1745-1751 Link Here
1745
					this.column += tokensString.length();
1748
					this.column += tokensString.length();
1746
					tokensBuffer.setLength(0);
1749
					tokensBuffer.setLength(0);
1747
				}
1750
				}
1748
				if (bufferHasTokens) {
1751
				if (bufferHasTokens && !bufferHasNewLine) {
1749
			    	buffer.append(this.lineSeparator);
1752
			    	buffer.append(this.lineSeparator);
1750
			    	this.column = 1;
1753
			    	this.column = 1;
1751
			    	printIndentationIfNecessary(buffer);
1754
			    	printIndentationIfNecessary(buffer);
Lines 1759-1764 Link Here
1759
		    	}
1762
		    	}
1760
				buffer.append(this.scanner.source, tokenStart, tokenLength);
1763
				buffer.append(this.scanner.source, tokenStart, tokenLength);
1761
				bufferHasTokens = true;
1764
				bufferHasTokens = true;
1765
				bufferHasNewLine = false;
1762
				this.column += tokenLength;
1766
				this.column += tokenLength;
1763
				multiLines = true;
1767
				multiLines = true;
1764
				hasTextOnFirstLine = -1;
1768
				hasTextOnFirstLine = -1;
(-)src/org/eclipse/jdt/core/tests/formatter/FormatterBugsTests.java (+42 lines)
Lines 1976-1979 Link Here
1976
		"}\n"
1976
		"}\n"
1977
	);
1977
	);
1978
}
1978
}
1979
1980
/**
1981
 * @bug 295238: [formatter] The comment formatter add an unexpected new line in block comment
1982
 * @test Verify that formatting a block comment with a tag does not add an unexpected new line
1983
 * 		when the 'Never join lines' option is set
1984
 * @see "https://bugs.eclipse.org/bugs/show_bug.cgi?id=295238"
1985
 */
1986
public void testBug295238() {
1987
	String source = 
1988
		"package wksp1;\n" + 
1989
		"\n" + 
1990
		"public interface X03 {\n" + 
1991
		"	\n" + 
1992
		"	class Inner {\n" + 
1993
		"		\n" + 
1994
		"		/* (non-Javadoc)\n" + 
1995
		"		 * @see org.eclipse.jface.text.TextViewer#customizeDocumentCommand(org.eclipse.jface.text.DocumentCommand)\n" + 
1996
		"		 */\n" + 
1997
		"		protected void foo() {\n" + 
1998
		"		}\n" + 
1999
		"	}\n" + 
2000
		"}\n";
2001
	formatSource(source,
2002
		"package wksp1;\n" + 
2003
		"\n" + 
2004
		"public interface X03 {\n" + 
2005
		"\n" + 
2006
		"	class Inner {\n" + 
2007
		"\n" + 
2008
		"		/*\n" + 
2009
		"		 * (non-Javadoc)\n" + 
2010
		"		 * \n" + 
2011
		"		 * @see\n" + 
2012
		"		 * org.eclipse.jface.text.TextViewer#customizeDocumentCommand(org.eclipse\n" + 
2013
		"		 * .jface.text.DocumentCommand)\n" + 
2014
		"		 */\n" + 
2015
		"		protected void foo() {\n" + 
2016
		"		}\n" + 
2017
		"	}\n" + 
2018
		"}\n"
2019
	);
2020
}
1979
}
2021
}

Return to bug 295238