From e7abf3e814a3b74c182285abf80cd19f093d4423 Mon Sep 17 00:00:00 2001 From: Peter Gromov Date: Tue, 30 Sep 2025 09:27:18 +0200 Subject: [PATCH] [grazie] speed up XmlTextExtractor for tags with only whitespace and other tags inside (for IJPL-202385) GitOrigin-RevId: 6c4e1024e84ec12b094b6b6e93dfc0de33b646ac --- .../grazie/ide/language/xml/XmlTextExtractor.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/grazie/xml/main/kotlin/com/intellij/grazie/ide/language/xml/XmlTextExtractor.java b/plugins/grazie/xml/main/kotlin/com/intellij/grazie/ide/language/xml/XmlTextExtractor.java index b8e3227d3222..15de0292c1ff 100644 --- a/plugins/grazie/xml/main/kotlin/com/intellij/grazie/ide/language/xml/XmlTextExtractor.java +++ b/plugins/grazie/xml/main/kotlin/com/intellij/grazie/ide/language/xml/XmlTextExtractor.java @@ -15,10 +15,7 @@ import com.intellij.lang.xml.XMLLanguage; import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.registry.Registry; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiRecursiveElementWalkingVisitor; -import com.intellij.psi.SyntaxTraverser; -import com.intellij.psi.TokenType; +import com.intellij.psi.*; import com.intellij.psi.formatter.xml.HtmlCodeStyleSettings; import com.intellij.psi.html.HtmlTag; import com.intellij.psi.templateLanguages.OuterLanguageElement; @@ -157,12 +154,15 @@ public class XmlTextExtractor extends TextExtractor { private void flushGroup(boolean unknownAfter) { int containerStart = container.getTextRange().getStartOffset(); List components = new ArrayList<>(group.size()); - for (int i = 0; i < group.size(); i++) { + int i = 0; + while (i < group.size() && group.get(i) instanceof PsiWhiteSpace) i++; + while (i < group.size()) { PsiElement e = group.get(i); TextContent component = extractRange(e.getTextRange().shiftLeft(containerStart)); component = applyExclusions(i, component, markupIndices, ExclusionKind.markup); component = applyExclusions(i, component, unknownIndices, ExclusionKind.unknown); components.add(component); + i++; } unknownIndices.clear(); markupIndices.clear();