From 0a4b7281778f7273bb7cea4bc3b482f3d1ee2f52 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 19 Nov 2024 12:33:17 +0100 Subject: [PATCH] optimizations: do not create unneeded intermediary sets, avoid unnecessary conversions, do not create substrings GitOrigin-RevId: 201ade375e9feecfd5c2f0b7cf581b2922e61355 --- .../src/com/intellij/psi/search/FilenameIndex.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java b/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java index 25de301bc317..ec0a11696c60 100644 --- a/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java +++ b/platform/indexing-api/src/com/intellij/psi/search/FilenameIndex.java @@ -217,12 +217,13 @@ public final class FilenameIndex { int len = ext.length() + 1; Set names = new HashSet<>(); - for (String name : getAllFilenames(project)) { + processAllFileNames(name ->{ int length = name.length(); - if (length > len && name.substring(length - len).equalsIgnoreCase(dotExt)) { + if (length > len && name.regionMatches(true, length - len, dotExt, 0, len)) { names.add(name); } - } + return true; + }, GlobalSearchScope.allScope(project), null); return getVirtualFilesByNames(names, searchScope, null); }