From b6e7af0698c29ae6801ff650a55bab9e23834514 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Sun, 12 Oct 2025 17:37:27 +0200 Subject: [PATCH] Java: render string literal with colon correctly in structure view (IDEA-138681) GitOrigin-RevId: c1f6b7872d3b6f556582b84df35892f0ef2aa6d3 --- .../impl/java/JavaVariableBaseTreeElement.java | 10 +++++----- .../java/structureView/JavaStructureViewTest.java | 12 ++++++++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaVariableBaseTreeElement.java b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaVariableBaseTreeElement.java index 598659e96812..b45e04a5f12a 100644 --- a/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaVariableBaseTreeElement.java +++ b/java/java-structure-view/src/com/intellij/ide/structureView/impl/java/JavaVariableBaseTreeElement.java @@ -25,11 +25,11 @@ public abstract class JavaVariableBaseTreeElement extends if (field == null) return ""; final boolean dumb = DumbService.isDumb(field.getProject()); - return StringUtil.replace(formatVariable( - field, - SHOW_NAME | (dumb ? 0 : SHOW_TYPE) | TYPE_AFTER | (dumb ? 0 : SHOW_INITIALIZER), - PsiSubstitutor.EMPTY - ), ":", ": "); + final String text = formatVariable(field, + SHOW_NAME | (dumb ? 0 : SHOW_TYPE) | TYPE_AFTER | (dumb ? 0 : SHOW_INITIALIZER), + PsiSubstitutor.EMPTY); + final int colon = text.indexOf(':'); + return colon >= 0 ? text.substring(0, colon + 1) + ' ' + text.substring(colon + 1) : text; } @Override diff --git a/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java b/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java index 89cf42a71036..c4b89117aaa4 100644 --- a/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java +++ b/java/java-tests/testSrc/com/intellij/java/structureView/JavaStructureViewTest.java @@ -111,6 +111,18 @@ public class JavaStructureViewTest extends LightJavaStructureViewTestCaseBase { private static int getFieldsCount() { return ANNO_FIELD_COUNT + FIELD_COUNT; } + + public void testColons() { + doTest(""" + class X { + public static final String colons = "a:b:c:"; + }""", + """ + -Test.java + -X + colons: String = "a:b:c:" + """); + } public void testSuperTypeGrouping() { doTest("""