void (@NotNull Path jdkHome, @NotNull SdkModificator sdkModificator, @Nullable Sdk sdk) { OrderRootType docRootType = JavadocOrderRootType.getInstance(); VirtualFile apiDocs = findDocs(jdkHome, "docs/api"); if (apiDocs != null) { sdkModificator.addRoot(apiDocs, docRootType); } else if (SystemInfo.isMac) { VirtualFile commonDocs = findDocs(jdkHome, "docs"); if (commonDocs == null) commonDocs = findInJar(jdkHome.resolve("docs.jar"), "doc/api"); if (commonDocs == null) commonDocs = findInJar(jdkHome.resolve("docs.jar"), "docs/api"); if (commonDocs != null) { sdkModificator.addRoot(commonDocs, docRootType); } VirtualFile appleDocs = findDocs(jdkHome, "appledocs"); if (appleDocs == null) appleDocs = findInJar(jdkHome.resolve("appledocs.jar"), "appledoc/api"); if (appleDocs != null) { sdkModificator.addRoot(appleDocs, docRootType); } } if (sdk != null && sdkModificator.getRoots(docRootType).length == 0 && sdkModificator.getRoots(OrderRootType.SOURCES).length == 0) { // registers external docs when both sources and local docs are missing String docUrl = getDefaultDocumentationUrl(sdk); if (docUrl != null) { VirtualFile onlineDoc = VirtualFileManager.getInstance().findFileByUrl(docUrl); if (onlineDoc != null) { sdkModificator.addRoot(onlineDoc, docRootType); } } if (getVersion(sdk) == JavaSdkVersion.JDK_1_7) { VirtualFile fxDocUrl = VirtualFileManager.getInstance().findFileByUrl("https://docs.oracle.com/javafx/2/api/"); if (fxDocUrl != null) { sdkModificator.addRoot(fxDocUrl, docRootType); } } } }