From 224cbe2f0843b6abb2f862b5f19c386d79058dd5 Mon Sep 17 00:00:00 2001 From: Ilia Permiashkin Date: Mon, 25 Aug 2025 18:37:51 +0000 Subject: [PATCH] IJPL-203663 Stmt Typing Code Analysis degradation in large files due to Grazie Co-authored-by: Vladislav Beskrovnyi Merge-request: IJ-MR-173416 Merged-by: Ilia Permiashkin GitOrigin-RevId: 6dd927578fe6094ec53db92086977ee2c652b0ca --- .../kotlin/com/intellij/grazie/cloud/DependencyParser.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/grazie/src/main/kotlin/com/intellij/grazie/cloud/DependencyParser.kt b/plugins/grazie/src/main/kotlin/com/intellij/grazie/cloud/DependencyParser.kt index 2a00c103eac9..9970aa56a662 100644 --- a/plugins/grazie/src/main/kotlin/com/intellij/grazie/cloud/DependencyParser.kt +++ b/plugins/grazie/src/main/kotlin/com/intellij/grazie/cloud/DependencyParser.kt @@ -34,6 +34,7 @@ import org.languagetool.language.English object DependencyParser { private val LOG = Logger.getInstance(DependencyParser::class.java) + private val cachedTrees = ContainerUtil.createSoftKeySoftValueMap() @JvmStatic fun getParser(text: TextContent, minimal: Boolean): AsyncBatchParser? { @@ -62,7 +63,11 @@ object DependencyParser { val support = obtainSupport(language) if (support != null) { @Suppress("UNCHECKED_CAST") - return sentences.associateWith { Tree.createFlatTree(support, it.sentence) } as LinkedHashMap + return sentences.associateWith { + cachedTrees.getOrPut(it.sentence) { + Tree.createFlatTree(support, it.sentence) + } + } as LinkedHashMap } return LinkedHashMap()