Skip to content

Commit 46c42e4

Browse files
authored
Merge pull request #8484 from naren2605/origin-master
fixing formatter issues
2 parents c0f70ee + edc57cf commit 46c42e4

File tree

3 files changed

+100
-2
lines changed

3 files changed

+100
-2
lines changed

ide/editor.document/src/org/netbeans/api/editor/document/LineDocumentUtils.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.netbeans.modules.editor.document.DocumentServices;
3131
import org.netbeans.modules.editor.document.TextSearchUtils;
3232
import org.netbeans.modules.editor.document.implspi.CharClassifier;
33-
import org.netbeans.modules.editor.lib2.AcceptorFactory;
3433
import org.netbeans.spi.editor.document.DocumentFactory;
3534
import org.openide.util.Lookup;
3635

java/java.source.base/src/org/netbeans/modules/java/source/save/Reformatter.java

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2565,7 +2565,36 @@ public Boolean visitIf(final IfTree node, Void p) {
25652565
StatementTree elseStat = node.getElseStatement();
25662566
CodeStyle.BracesGenerationStyle redundantIfBraces = cs.redundantIfBraces();
25672567
int eoln = findNewlineAfterStatement(node);
2568-
if ((elseStat != null && redundantIfBraces == CodeStyle.BracesGenerationStyle.ELIMINATE && danglingElseChecker.hasDanglingElse(node.getThenStatement())) ||
2568+
Boolean hasErrThenStatement = node.getThenStatement() instanceof ExpressionStatementTree thenStatement
2569+
&& thenStatement.getExpression() instanceof ErroneousTree;
2570+
if (hasErrThenStatement) {
2571+
if (getCurrentPath().getParentPath().getLeaf() instanceof BlockTree parentStTree) {
2572+
boolean isPreviousIfTree = false;
2573+
int endPositionOfErrThenStatement = endPos;
2574+
for (StatementTree statement : parentStTree.getStatements()) {
2575+
if (isPreviousIfTree) {
2576+
int startPositionOfNextErrorStatement = (int) sp.getStartPosition(getCurrentPath().getCompilationUnit(), statement);
2577+
endPositionOfErrThenStatement = startPositionOfNextErrorStatement;
2578+
break;
2579+
} else if (statement == node) {
2580+
isPreviousIfTree = true;
2581+
endPositionOfErrThenStatement = (int) sp.getEndPosition(getCurrentPath().getCompilationUnit(), parentStTree) - 1;
2582+
}
2583+
2584+
}
2585+
if (isPreviousIfTree) {
2586+
while (tokens.offset() <= endPositionOfErrThenStatement && endPositionOfErrThenStatement != -1) {
2587+
tokens.moveNext();
2588+
}
2589+
tokens.movePrevious();
2590+
if (endPositionOfErrThenStatement != -1) {
2591+
endPos = endPositionOfErrThenStatement;
2592+
}
2593+
}
2594+
}
2595+
}
2596+
2597+
if (hasErrThenStatement || (elseStat != null && redundantIfBraces == CodeStyle.BracesGenerationStyle.ELIMINATE && danglingElseChecker.hasDanglingElse(node.getThenStatement())) ||
25692598
(redundantIfBraces == CodeStyle.BracesGenerationStyle.GENERATE && (startOffset > sp.getStartPosition(root, node) || endOffset < eoln || node.getCondition().getKind() == Tree.Kind.ERRONEOUS))) {
25702599
redundantIfBraces = CodeStyle.BracesGenerationStyle.LEAVE_ALONE;
25712600
}

java/java.source.base/test/unit/src/org/netbeans/modules/java/source/save/FormatingTest.java

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1556,6 +1556,76 @@ public void run(WorkingCopy workingCopy) throws java.io.IOException {
15561556
preferences.putBoolean("specialElseIf", false);
15571557
reformat(doc, content, golden);
15581558
preferences.putBoolean("specialElseIf", true);
1559+
1560+
content = """
1561+
package hierbas.del.litoral;
1562+
class Test extends Integer implements Runnable, Serializable{
1563+
public void run(){
1564+
if ("foo".contains("bar"))))) ))) {
1565+
System.out.println("bar");
1566+
}
1567+
}
1568+
}
1569+
""";
1570+
golden = """
1571+
package hierbas.del.litoral;
1572+
1573+
class Test extends Integer implements Runnable, Serializable {
1574+
1575+
public void run() {
1576+
if ("foo".contains("bar"))))) ))) {
1577+
System.out.println("bar");
1578+
}
1579+
}
1580+
}
1581+
""";
1582+
reformat(doc, content, golden);
1583+
1584+
content = """
1585+
package hierbas.del.litoral;
1586+
class Test extends Integer implements Runnable, Serializable{
1587+
public void run(){
1588+
if ("foo".contains("bar"))))) )))
1589+
}
1590+
}
1591+
""";
1592+
golden = """
1593+
package hierbas.del.litoral;
1594+
1595+
class Test extends Integer implements Runnable, Serializable {
1596+
1597+
public void run() {
1598+
if ("foo".contains("bar"))))) )))
1599+
}
1600+
}
1601+
""";
1602+
reformat(doc, content, golden);
1603+
1604+
content = """
1605+
package hierbas.del.litoral;
1606+
class Test extends Integer implements Runnable, Serializable{
1607+
public void run(){
1608+
if ("foo".contains("bar"))))) )))
1609+
else {
1610+
System.out.println("bar2")
1611+
}
1612+
}
1613+
}
1614+
""";
1615+
golden = """
1616+
package hierbas.del.litoral;
1617+
1618+
class Test extends Integer implements Runnable, Serializable {
1619+
1620+
public void run() {
1621+
if ("foo".contains("bar"))))) )))
1622+
else {
1623+
System.out.println("bar2")
1624+
}
1625+
}
1626+
}
1627+
""";
1628+
reformat(doc, content, golden);
15591629
}
15601630

15611631
public void testWhile() throws Exception {

0 commit comments

Comments
 (0)