From 18dce5fb7f7d0b2054e5a69c5190a1c369004b8f Mon Sep 17 00:00:00 2001 From: Sougandh S Date: Mon, 27 Apr 2026 18:24:08 +0530 Subject: [PATCH] Handle Markdown in EnumDeclaration This commit fixes the IOBE on formatting Markdown in Enum declaration part Fixes : https://github.com/eclipse-jdt/eclipse.jdt.core/issues/5032 --- .../formatter/FormatterRegressionTests.java | 17 +++++++++++++++++ .../formatter/LineBreaksPreparator.java | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java index aa6cc3d221a..332409fa1d8 100644 --- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java +++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/formatter/FormatterRegressionTests.java @@ -16554,4 +16554,21 @@ record X(T value) { """; formatSource(input, expected); } + + public void testEnumJavaDocBreak() throws JavaModelException { + setComplianceLevel(CompilerOptions.VERSION_23); + String input = """ + public enum TestEnum { + /// A + A; + } + """; + String expected = """ + public enum TestEnum { + /// A + A; + } + """; + formatSource(input, expected); + } } diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/LineBreaksPreparator.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/LineBreaksPreparator.java index 7288bafd810..86b38a1e981 100644 --- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/LineBreaksPreparator.java +++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/internal/formatter/LineBreaksPreparator.java @@ -164,7 +164,7 @@ public boolean visit(EnumDeclaration node) { for (int i = 0; i < enumConstants.size(); i++) { EnumConstantDeclaration declaration = enumConstants.get(i); if (declaration.getJavadoc() != null) - this.tm.firstTokenIn(declaration, TokenNameCOMMENT_JAVADOC).breakBefore(); + this.tm.firstTokenIn(declaration.getJavadoc(), ANY).breakBefore(); if (declaration.getAnonymousClassDeclaration() != null && i < enumConstants.size() - 1) this.tm.firstTokenAfter(declaration, TokenNameCOMMA).breakAfter(); }