From 614055bec1e870ec9bf15f032e8f0e1b6930b78f Mon Sep 17 00:00:00 2001 From: Alexander Bubenchikov Date: Wed, 27 May 2020 17:58:13 +0300 Subject: [PATCH] remove non-alpabet symbols from package search GitOrigin-RevId: 8da34e824fc5a0113ae03f0041a4e15edf92c77a --- .../idea/kpmsearch/PackageSearchService.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/repository-search/src/main/java/org/jetbrains/idea/kpmsearch/PackageSearchService.java b/plugins/repository-search/src/main/java/org/jetbrains/idea/kpmsearch/PackageSearchService.java index 2ce9c949b9bf..f7c3d98e8d92 100644 --- a/plugins/repository-search/src/main/java/org/jetbrains/idea/kpmsearch/PackageSearchService.java +++ b/plugins/repository-search/src/main/java/org/jetbrains/idea/kpmsearch/PackageSearchService.java @@ -35,13 +35,33 @@ public class PackageSearchService implements DependencySearchProvider { @Override public void fulltextSearch(@NotNull String searchString, @NotNull Consumer consumer) { + searchString = normalize(searchString); ProgressManager.checkCanceled(); String url = createUrlFullTextSearch(searchString); doRequest(consumer, url); } + private String normalize(String string) { + if (string == null) return null; + StringBuilder builder = new StringBuilder(); + boolean isOK = true; + for (char c : string.toCharArray()) { + if ((c >= 'a' && c <= 'z') || + (c >= 'A' && c <= 'Z') || + c == ':' || c == '-') { + builder.append(c); + } + else { + isOK = false; + } + } + return isOK ? string : builder.toString(); + } + @Override public void suggestPrefix(@Nullable String groupId, @Nullable String artifactId, @NotNull Consumer consumer) { + artifactId = normalize(artifactId); + groupId = normalize(groupId); ProgressManager.checkCanceled(); String url = createUrlSuggestPrefix(groupId, artifactId); doRequest(consumer, url);