diff --git a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java index 811d93b2c..1553f4751 100644 --- a/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java +++ b/headless-services/boot-java-language-server/src/main/java/org/springframework/ide/vscode/boot/java/utils/SpringIndexer.java @@ -54,6 +54,7 @@ import org.springframework.ide.vscode.commons.java.IJavaProject; import org.springframework.ide.vscode.commons.languageserver.java.JavaProjectFinder; import org.springframework.ide.vscode.commons.languageserver.java.ProjectObserver.Listener; import org.springframework.ide.vscode.commons.util.Log; +import org.springframework.ide.vscode.commons.util.StringUtil; import org.springframework.ide.vscode.commons.util.text.LanguageId; import org.springframework.ide.vscode.commons.util.text.TextDocument; @@ -241,7 +242,7 @@ public class SpringIndexer { try { initializeTask.get(); return allsymbols.stream() - .filter(symbol -> containsCharacters(symbol.getName().toCharArray(), query.toCharArray())) + .filter(symbol -> StringUtil.containsCharactersCaseInsensitive(symbol.getName(), query)) .collect(Collectors.toList()); } catch (InterruptedException | ExecutionException e) { e.printStackTrace(); @@ -250,20 +251,6 @@ public class SpringIndexer { return null; } - private boolean containsCharacters(char[] symbolChars, char[] queryChars) { - int symbolindex = 0; - int queryindex = 0; - - while (queryindex < queryChars.length && symbolindex < symbolChars.length) { - if (symbolChars[symbolindex] == queryChars[queryindex]) { - queryindex++; - } - symbolindex++; - } - - return queryindex == queryChars.length; - } - private void scanFiles(File directory) { try { Map, List> projects = Files.walk(directory.toPath()) diff --git a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/StringUtil.java b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/StringUtil.java index 343a2c9ca..a37cfdc4f 100644 --- a/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/StringUtil.java +++ b/headless-services/commons/commons-util/src/main/java/org/springframework/ide/vscode/commons/util/StringUtil.java @@ -217,4 +217,22 @@ public class StringUtil { } return Optional.empty(); } + + public static boolean containsCharactersCaseInsensitive(String value, String query) { + return containsCharacters(value.toLowerCase().toCharArray(), query.toLowerCase().toCharArray()); + } + + public static boolean containsCharacters(char[] valChars, char[] queryChars) { + int symbolindex = 0; + int queryindex = 0; + + while (queryindex < queryChars.length && symbolindex < valChars.length) { + if (valChars[symbolindex] == queryChars[queryindex]) { + queryindex++; + } + symbolindex++; + } + + return queryindex == queryChars.length; + } }