From 0a5b243b2843eb472829bb1f95c97d8bd122243a Mon Sep 17 00:00:00 2001 From: "Aleksei.Cherepanov" Date: Mon, 5 Aug 2024 20:28:38 +0200 Subject: [PATCH] IJPL-159657 Fix performance issue with UrlFilter After b77168e2 (related to KTIJ-29334), Url filter started using url filter each time, even if file url is present. That makes the performance test of this filter with only file urls slower. Here I've added some checks before using an expensive URL filter ^IJPL-159657 Fixed GitOrigin-RevId: 30651ed33375244feb9e34173c6162387241360c --- .../com/intellij/execution/filters/UrlFilter.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java b/platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java index e524f6061c9e..80157ca1aa15 100644 --- a/platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java +++ b/platform/execution-impl/src/com/intellij/execution/filters/UrlFilter.java @@ -59,7 +59,9 @@ public class UrlFilter implements Filter, DumbAware { resultList.addAll(findMatchingItems(line, URLUtil.FILE_URL_PATTERN, textStartOffset)); } - resultList.addAll(findMatchingItems(line, URLUtil.URL_PATTERN, textStartOffset)); + if (isPotentialUrl(line)) { + resultList.addAll(findMatchingItems(line, URLUtil.URL_PATTERN, textStartOffset)); + } if (resultList.isEmpty()) { return null; @@ -73,6 +75,14 @@ public class UrlFilter implements Filter, DumbAware { return new Result(resultList); } + private static boolean isPotentialUrl(String input) { + return input.contains("www") || + input.contains("http") || + input.contains("mailto") || + input.contains("ftp") || + input.contains("news"); + } + protected @NotNull HyperlinkInfo buildHyperlinkInfo(@NotNull String url) { HyperlinkInfo fileHyperlinkInfo = buildFileHyperlinkInfo(url); return fileHyperlinkInfo != null ? fileHyperlinkInfo : new OpenUrlHyperlinkInfo(url);