diff --git a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java index 539ab11de473..3674ebfab633 100644 --- a/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java +++ b/java/java-impl/src/com/intellij/lang/java/JavaDocumentationProvider.java @@ -632,10 +632,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement if (aClass != null) { ClassInfo info = findUrlForClass(aClass); if (info != null) { - urls = info.externalDocUrls; - for (int i = 0; i < urls.size(); i++) { - urls.set(i, urls.get(i) + "#" + field.getName()); - } + urls = ContainerUtil.map(info.externalDocUrls, (url) -> url + "#" + field.getName()); } } } @@ -672,10 +669,7 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement return null; } else { - for (int i = 0; i < urls.size(); i++) { - urls.set(i, FileUtil.toSystemIndependentName(urls.get(i))); - } - return urls; + return ContainerUtil.map(urls, FileUtil::toSystemIndependentName); } } @@ -938,7 +932,9 @@ public class JavaDocumentationProvider extends DocumentationProviderEx implement private static class ClassInfo { private final boolean isInJdk; + /** These should be used to fetch documentation in IDEA code */ private final @NotNull List internalDocUrls; + /** These are for viewing documentation in browser (jar:// urls here are replaced with http:// urls provided by built-in web server) */ private final @NotNull List externalDocUrls; private ClassInfo(boolean jdk, @NotNull List docUrls) { diff --git a/platform/core-impl/src/com/intellij/codeInsight/documentation/PlatformDocumentationUtil.java b/platform/core-impl/src/com/intellij/codeInsight/documentation/PlatformDocumentationUtil.java index 8add53306fdb..895aca00ef71 100644 --- a/platform/core-impl/src/com/intellij/codeInsight/documentation/PlatformDocumentationUtil.java +++ b/platform/core-impl/src/com/intellij/codeInsight/documentation/PlatformDocumentationUtil.java @@ -16,6 +16,7 @@ package com.intellij.codeInsight.documentation; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileManager; import com.intellij.openapi.vfs.ex.http.HttpFileSystem; @@ -55,11 +56,8 @@ public class PlatformDocumentationUtil { @Nullable public static String getDocUrl(@NotNull VirtualFile root, String relPath) { if (root.getFileSystem() instanceof HttpFileSystem) { - String url = root.getUrl(); - if (url.toLowerCase(Locale.getDefault()).endsWith("/index.html")) { - url = url.substring(0, url.length() - 10); - } - else if (!url.endsWith("/")) { + String url = StringUtil.trimEnd(root.getUrl(), "/index.html", true); + if (!url.endsWith("/")) { url += "/"; } return url + relPath;