From a53a12b68a85c50daf2bf373e8bc51eb79d36b87 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Thu, 16 Apr 2020 16:53:16 +0200 Subject: [PATCH] Do not search TODOs in non KT and non physical files #KT-37896 Fixed #EA-230407 Fixed --- .../idea/search/ideaExtensions/KotlinTodoSearcher.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinTodoSearcher.kt b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinTodoSearcher.kt index e84ae1a1106..10124a9743b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinTodoSearcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/search/ideaExtensions/KotlinTodoSearcher.kt @@ -25,6 +25,7 @@ import com.intellij.psi.search.IndexPatternOccurrence import com.intellij.psi.search.searches.IndexPatternSearch import com.intellij.util.Processor import org.jetbrains.kotlin.psi.KtCallExpression +import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtTreeVisitorVoid data class KotlinTodoOccurrence(private val _file: PsiFile, private val _textRange: TextRange, private val _pattern: IndexPattern) : @@ -36,20 +37,21 @@ data class KotlinTodoOccurrence(private val _file: PsiFile, private val _textRan class KotlinTodoSearcher : QueryExecutorBase(true) { override fun processQuery(queryParameters: IndexPatternSearch.SearchParameters, consumer: Processor) { + val file = queryParameters.file as? KtFile ?: return + val virtualFile = file.virtualFile ?: return + var pattern = queryParameters.pattern if (pattern != null && !pattern.patternString.contains("TODO", true)) return if (pattern == null) { pattern = queryParameters.patternProvider.indexPatterns.firstOrNull { it.patternString.contains("TODO", true) } ?: return } - val file = queryParameters.file - val cacheManager = TodoCacheManager.SERVICE.getInstance(file.project) val patternProvider = queryParameters.patternProvider val count = if (patternProvider != null) { - cacheManager.getTodoCount(file.virtualFile, patternProvider) + cacheManager.getTodoCount(virtualFile, patternProvider) } else - cacheManager.getTodoCount(file.virtualFile, pattern) + cacheManager.getTodoCount(virtualFile, pattern) if (count == 0) return file.accept(object : KtTreeVisitorVoid() {