diff --git a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java index ccf0dd904e5e..7b233a67d86b 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/search/IndexPatternSearcher.java @@ -65,13 +65,11 @@ public class IndexPatternSearcher implements QueryExecutor consumer) { + protected static boolean executeImpl(IndexPatternSearch.SearchParameters queryParameters, + Processor consumer) { final IndexPatternProvider patternProvider = queryParameters.getPatternProvider(); final PsiFile file = queryParameters.getFile(); TIntArrayList commentStarts = new TIntArrayList(); @@ -113,50 +111,45 @@ public class IndexPatternSearcher implements QueryExecutor relevantLanguages = viewProvider.getLanguages(); - for (Language lang : relevantLanguages) { - final TIntArrayList commentStartsList = new TIntArrayList(); - final TIntArrayList commentEndsList = new TIntArrayList(); + final FileViewProvider viewProvider = file.getViewProvider(); + final Set relevantLanguages = viewProvider.getLanguages(); + for (Language lang : relevantLanguages) { + final TIntArrayList commentStartsList = new TIntArrayList(); + final TIntArrayList commentEndsList = new TIntArrayList(); - final SyntaxHighlighter syntaxHighlighter = - SyntaxHighlighterFactory.getSyntaxHighlighter(lang, file.getProject(), file.getVirtualFile()); - Lexer lexer = syntaxHighlighter.getHighlightingLexer(); - TokenSet commentTokens = null; - IndexPatternBuilder builderForFile = null; - for (IndexPatternBuilder builder : Extensions.getExtensions(IndexPatternBuilder.EP_NAME)) { - Lexer lexerFromBuilder = builder.getIndexingLexer(file); - if (lexerFromBuilder != null) { - lexer = lexerFromBuilder; - commentTokens = builder.getCommentTokenSet(file); - builderForFile = builder; - } + final SyntaxHighlighter syntaxHighlighter = + SyntaxHighlighterFactory.getSyntaxHighlighter(lang, file.getProject(), file.getVirtualFile()); + Lexer lexer = syntaxHighlighter.getHighlightingLexer(); + TokenSet commentTokens = null; + IndexPatternBuilder builderForFile = null; + for (IndexPatternBuilder builder : Extensions.getExtensions(IndexPatternBuilder.EP_NAME)) { + Lexer lexerFromBuilder = builder.getIndexingLexer(file); + if (lexerFromBuilder != null) { + lexer = lexerFromBuilder; + commentTokens = builder.getCommentTokenSet(file); + builderForFile = builder; } - if (builderForFile == null) { - final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang); - if (parserDefinition != null) { - commentTokens = parserDefinition.getCommentTokens(); - } + } + if (builderForFile == null) { + final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(lang); + if (parserDefinition != null) { + commentTokens = parserDefinition.getCommentTokens(); } + } - if (commentTokens != null) { - findComments(lexer, chars, range, commentTokens, commentStartsList, commentEndsList, builderForFile); - mergeCommentLists(commentStarts, commentEnds, commentStartsList, commentEndsList); - } + if (commentTokens != null) { + findComments(lexer, chars, range, commentTokens, commentStartsList, commentEndsList, builderForFile); + mergeCommentLists(commentStarts, commentEnds, commentStartsList, commentEndsList); } } } @@ -166,7 +159,7 @@ public class IndexPatternSearcher implements QueryExecutor