private static void updateModules(@NotNull Project project, @NotNull Library lib, boolean remove) { Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); if (!remove) { if (model.findLibraryOrderEntry(lib) == null) { LibraryOrderEntry entry = model.addLibraryEntry(lib); entry.setScope(DependencyScope.PROVIDED); } } else { LibraryOrderEntry entry = model.findLibraryOrderEntry(lib); if (entry != null) { model.removeOrderEntry(entry); } } model.commit(); } }
private Sdk getGoSdk(@Nullable Module module) { if (module != null) { Sdk sdk = ModuleRootManager.getInstance(module).getSdk(); if (sdk != null && sdk.getSdkType() instanceof GoSdkType) { return sdk; } } Sdk sdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); return sdk != null && sdk.getSdkType() instanceof GoSdkType ? sdk : null; } }
@Override public boolean isRootTypeApplicable(@NotNull OrderRootType type) { return type == OrderRootType.CLASSES || type == OrderRootType.SOURCES || type == JavadocOrderRootType.getInstance(); }
private void addContentRoot(@NotNull VirtualFile contentRoot) { ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); try { model.addContentEntry(contentRoot); contentRootsToClean.add(contentRoot); model.commit(); } finally { if (!model.isDisposed()) model.dispose(); } }
tempRootsToClean.clear(); ModifiableRootModel model = ModuleRootManager.getInstance(myModule).getModifiableModel(); try { for (ContentEntry entry : model.getContentEntries()) { if (contentRootsToClean.contains(entry.getFile())) { model.removeContentEntry(entry); if (!model.isDisposed()) model.dispose();
/** * Searches for excluded roots in given {@link Project}. * * @param project current project * @return list of excluded roots */ public static List<VirtualFile> getExcludedRoots(@NotNull Project project) { List<VirtualFile> roots = ContainerUtil.newArrayList(); ModuleManager manager = ModuleManager.getInstance(project); for (Module module : manager.getModules()) { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); if (model.isDisposed()) { continue; } Collections.addAll(roots, model.getExcludeRoots()); model.dispose(); } return roots; }
@Nullable private static Sdk projectSdk(@NotNull Project project) { return sdk(ProjectRootManager.getInstance(project).getProjectSdk()); }
/** * Initializes {@link #cacheMap} and {@link VirtualFileManager}. * * @param project current project */ protected FilesIndexCacheProjectComponent(@NotNull final Project project) { super(project); cacheMap = ContainerUtil.newConcurrentMap(); virtualFileManager = VirtualFileManager.getInstance(); projectFileIndex = ProjectRootManager.getInstance(project).getFileIndex(); }
private void assertLibrary(@NotNull Collection<String> libUrls, String... exclusionUrls) { UIUtil.dispatchAllInvocationEvents(); GoModuleLibrariesInitializer initializer = myModule.getComponent(GoModuleLibrariesInitializer.class); ModuleRootManager model = ModuleRootManager.getInstance(myModule); LibraryOrderEntry libraryOrderEntry = OrderEntryUtil.findLibraryOrderEntry(model, initializer.getLibraryName()); if (libUrls.isEmpty()) { assertNull(libraryOrderEntry); return; } LibraryEx library = (LibraryEx)libraryOrderEntry.getLibrary(); assertNotNull(library); assertSameElements(Arrays.asList(library.getUrls(OrderRootType.CLASSES)), libUrls); assertSameElements(library.getExcludedRootUrls(), exclusionUrls); }
@Nullable private static Sdk moduleSdk(@NotNull Module module) { return sdk(ModuleRootManager.getInstance(module).getSdk()); }
private void removeLibraryIfNeeded() { ApplicationManager.getApplication().assertIsDispatchThread(); ModifiableModelsProvider modelsProvider = ModifiableModelsProvider.SERVICE.getInstance(); ModifiableRootModel model = modelsProvider.getModuleModifiableModel(myModule); LibraryOrderEntry goLibraryEntry = OrderEntryUtil.findLibraryOrderEntry(model, getLibraryName()); if (goLibraryEntry != null) { ApplicationManager.getApplication().runWriteAction(() -> { Library library = goLibraryEntry.getLibrary(); if (library != null) { LibraryTable table = library.getTable(); if (table != null) { table.removeLibrary(library); model.removeOrderEntry(goLibraryEntry); modelsProvider.commitModuleModifiableModel(model); } } else { modelsProvider.disposeModuleModifiableModel(model); } }); } else { ApplicationManager.getApplication().runWriteAction(() -> modelsProvider.disposeModuleModifiableModel(model)); } }
private boolean isAContentRoot(@Nullable PsiDirectory directory) { if (directory == null) { return false; } VirtualFile[] contentRoots = ProjectRootManager.getInstance(directory.getProject()).getContentRoots(); for (VirtualFile contentRoot : contentRoots) { if (contentRoot.equals(directory.getVirtualFile())) { return true; } } return false; } }
@Override public void chooseAndSetSdk(@Nullable Module module) { Sdk projectSdk = ProjectSettingsService.getInstance(myProject).chooseAndSetSdk(); if (projectSdk == null && module != null) { ApplicationManager.getApplication().runWriteAction(() -> { if (!module.isDisposed()) { ModuleRootModificationUtil.setSdkInherited(module); } }); } }
@Override public boolean visitFile(@NotNull VirtualFile file) { if (!isInSet(file)) { return false; } if (!file.isDirectory()) { iterator.processFile(file); } return true; } });
private Sdk getBallerinaSdk(@Nullable Module module) { if (module != null) { Sdk sdk = ModuleRootManager.getInstance(module).getSdk(); if (sdk != null && sdk.getSdkType() instanceof BallerinaSdkType) { return sdk; } } Sdk sdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); return sdk != null && sdk.getSdkType() instanceof BallerinaSdkType ? sdk : null; }
private static void updateModules(@NotNull Project project, @NotNull Library lib, boolean remove) { Module[] modules = ModuleManager.getInstance(project).getModules(); for (Module module : modules) { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); if (!remove) { if (model.findLibraryOrderEntry(lib) == null) { LibraryOrderEntry entry = model.addLibraryEntry(lib); entry.setScope(DependencyScope.PROVIDED); } } else { LibraryOrderEntry entry = model.findLibraryOrderEntry(lib); if (entry != null) { model.removeOrderEntry(entry); } } model.commit(); } }
@Nullable private static String getBallerinaSdk(Project project) { Sdk projectSdk = ProjectRootManager.getInstance(project).getProjectSdk(); if (projectSdk == null) { return null; } String sdkPath = projectSdk.getHomePath(); return (isBallerinaSdkHome(sdkPath)) ? sdkPath : null; }
private void removeLibraryIfNeeded() { ApplicationManager.getApplication().assertIsDispatchThread(); ModifiableModelsProvider modelsProvider = ModifiableModelsProvider.SERVICE.getInstance(); ModifiableRootModel model = modelsProvider.getModuleModifiableModel(myModule); LibraryOrderEntry ballerinaLibraryEntry = OrderEntryUtil.findLibraryOrderEntry(model, getLibraryName()); if (ballerinaLibraryEntry != null) { ApplicationManager.getApplication().runWriteAction(() -> { Library library = ballerinaLibraryEntry.getLibrary(); if (library != null) { LibraryTable table = library.getTable(); if (table != null) { table.removeLibrary(library); model.removeOrderEntry(ballerinaLibraryEntry); modelsProvider.commitModuleModifiableModel(model); } } else { modelsProvider.disposeModuleModifiableModel(model); } }); } else { ApplicationManager.getApplication().runWriteAction(() -> modelsProvider.disposeModuleModifiableModel(model)); } }
@Nullable public static OrderRootType documentationRootType() { OrderRootType rootType; if (isSmallIde()) { rootType = null; } else { rootType = JavadocOrderRootType.getInstance(); } return rootType; } }
public static String getSdkHome(Project project, Module module) { // Get the module SDK. Sdk moduleSdk = ModuleRootManager.getInstance(module).getSdk(); // If the SDK is Ballerina SDK, return the home path. if (moduleSdk != null && moduleSdk.getSdkType() == BallerinaSdkType.getInstance()) { return moduleSdk.getHomePath(); } // Ge the project SDK. Sdk projectSdk = ProjectRootManager.getInstance(project).getProjectSdk(); // If the SDK is Ballerina SDK, return the home path. if (projectSdk != null && projectSdk.getSdkType() == BallerinaSdkType.getInstance()) { return projectSdk.getHomePath(); } return ""; }