From 7e4d06fb9607da447c9916d2d0cf9f384151e7cc Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Wed, 11 Feb 2026 12:17:03 +0100 Subject: [PATCH] IDEA-384355 [java]: simplify escaping text block characters GitOrigin-RevId: 67b6453d2f2490cf6a13526f7ffd861f024ca976 --- .../com/intellij/psi/util/PsiLiteralUtil.java | 27 ++++++++----------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java index 34565a0f9f6d..48418e1775ad 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiLiteralUtil.java @@ -215,22 +215,21 @@ public final class PsiLiteralUtil { int length = s.length(); StringBuilder result = new StringBuilder(length); while (i < length) { - int nextIdx = parseQuotes(i, s, result, escapeStartQuote, escapeEndQuote); + char c = s.charAt(i); + if (c == '"') { + i = parseQuotes(i, s, result, escapeStartQuote, escapeEndQuote); + continue; + } + if (c == ' ') { + i = parseSpaces(i, s, result, escapeSpacesInTheEnd); + continue; + } + int nextIdx = parseBackSlashes(i, s, result); if (nextIdx != -1) { i = nextIdx; continue; } - nextIdx = parseSpaces(i, s, result, escapeSpacesInTheEnd); - if (nextIdx != -1) { - i = nextIdx; - continue; - } - nextIdx = parseBackSlashes(i, s, result); - if (nextIdx != -1) { - i = nextIdx; - continue; - } - result.append(s.charAt(i)); + result.append(c); i++; } return result.toString(); @@ -238,8 +237,6 @@ public final class PsiLiteralUtil { private static int parseQuotes(int start, @NotNull String s, @NotNull StringBuilder result, boolean escapeStartQuote, boolean escapeEndQuote) { - char c = s.charAt(start); - if (c != '"') return -1; int nQuotes = 1; int i = start; while (true) { @@ -263,8 +260,6 @@ public final class PsiLiteralUtil { } private static int parseSpaces(int start, @NotNull String s, @NotNull StringBuilder result, boolean escapeSpacesInTheEnd) { - char c = s.charAt(start); - if (c != ' ') return -1; int i = start; int nSpaces = 0; while (i < s.length() && s.charAt(i) == ' ') {