boolean (Sdk sdk, SdkModificator sdkModificator, SdkModel sdkModel) { String sdkHome = Objects.requireNonNull(sdk.getHomePath()); if (PsiUtil.isPathToIntelliJIdeaSources(sdkHome)) { try { ProgressManager.getInstance().runProcessWithProgressSynchronously((ThrowableComputable<Void, IOException>)() -> { setupSdkPathsFromIDEAProject(sdk, sdkModificator, sdkModel); return null; }, DevKitBundle.message("sdk.from.sources.scanning.roots"), true, null); } catch (ProcessCanceledException e) { return false; } catch (IOException e) { LOG.warn(e); Messages.showErrorDialog(e.toString(), DevKitBundle.message("sdk.title")); return false; } } else { VirtualFile[] ideaLib = getIdeaLibrary(sdkHome); for (VirtualFile aIdeaLib : ideaLib) { sdkModificator.addRoot(aIdeaLib, OrderRootType.CLASSES); } addSources(new File(sdkHome), sdkModificator); } return true; }