public static void removeExcludedRoot(Module module, VirtualFile root) { ModuleRootModificationUtil.updateModel( module, model -> { ContentEntry entry = findContentEntryWithAssertion(model, root); entry.removeExcludeFolder(root.getUrl()); }); }
public static <P extends JpsElement> void addSourceRoot( Module module, VirtualFile vDir, @NotNull JpsModuleSourceRootType<P> rootType, P properties) { ModuleRootModificationUtil.updateModel( module, model -> { ContentEntry entry = findContentEntry(model, vDir); if (entry == null) entry = model.addContentEntry(vDir); entry.addSourceFolder(vDir, rootType, properties); }); }
public static void addSourceRoot( final ModuleRootManager manager, @NotNull final VirtualFile root) { final ModifiableRootModel model = manager.getModifiableModel(); ContentEntry contentEntry = findContentEntryForRoot(model, root); if (contentEntry == null) { contentEntry = model.addContentEntry(root); } contentEntry.addSourceFolder(root, false); model.commit(); }
public static ContentEntry addContentRoot(Module module, VirtualFile vDir) { ModuleRootModificationUtil.updateModel(module, model -> model.addContentEntry(vDir)); for (ContentEntry entry : ModuleRootManager.getInstance(module).getContentEntries()) { if (Comparing.equal(entry.getFile(), vDir)) { Assert.assertFalse(((ContentEntryImpl) entry).isDisposed()); return entry; } } return null; }
@Nullable public static ContentEntry findContentEntryForRoot( @NotNull ModifiableRootModel model, @NotNull VirtualFile root) { ContentEntry contentEntry = null; for (ContentEntry candidate : model.getContentEntries()) { VirtualFile contentRoot = candidate.getFile(); if (contentRoot != null && VfsUtilCore.isAncestor(contentRoot, root, false)) { contentEntry = candidate; } } return contentEntry; }
public static void removeSourceRoot(Module module, VirtualFile root) { ModuleRootModificationUtil.updateModel( module, model -> { ContentEntry entry = findContentEntryWithAssertion(model, root); for (SourceFolder sourceFolder : entry.getSourceFolders()) { if (root.equals(sourceFolder.getFile())) { entry.removeSourceFolder(sourceFolder); break; } } }); }
public static ContentEntry addContentRoot(Module module, final VirtualFile vDir) { updateModel( module, new Consumer<ModifiableRootModel>() { @Override public void consume(ModifiableRootModel model) { model.addContentEntry(vDir); } }); for (ContentEntry entry : ModuleRootManager.getInstance(module).getContentEntries()) { if (Comparing.equal(entry.getFile(), vDir)) { Assert.assertFalse(((ContentEntryImpl) entry).isDisposed()); return entry; } } return null; }
private static void unexcludeRootIfNeccessary( @NotNull VirtualFile root, @NotNull ModuleRootManager manager) { Set<VirtualFile> excludedRoots = new HashSet<VirtualFile>(Arrays.asList(manager.getExcludeRoots())); VirtualFile excludedRoot = root; while (excludedRoot != null && !excludedRoots.contains(excludedRoot)) { excludedRoot = excludedRoot.getParent(); } if (excludedRoot == null) { return; } Set<VirtualFile> rootsToExclude = new HashSet<VirtualFile>(); collectChildrenRecursively(excludedRoot, root, rootsToExclude); final ModifiableRootModel model = manager.getModifiableModel(); ContentEntry contentEntry = findContentEntryForRoot(model, excludedRoot); if (contentEntry != null) { ExcludeFolder excludedFolder = null; for (ExcludeFolder folder : contentEntry.getExcludeFolders()) { if (folder.getFile() == excludedRoot) { excludedFolder = folder; break; } } if (excludedFolder != null) { contentEntry.removeExcludeFolder(excludedFolder); } for (VirtualFile rootToExclude : rootsToExclude) { if (!excludedRoots.contains(rootToExclude)) { contentEntry.addExcludeFolder(rootToExclude); } } } ApplicationManager.getApplication() .runWriteAction( new Runnable() { @Override public void run() { model.commit(); } }); }
private static void removeSourceRoot(@NotNull Module module, @NotNull final VirtualFile root) { final ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); final ContentEntry contentEntry = findContentEntryForRoot(model, root); if (contentEntry != null) { for (SourceFolder sourceFolder : contentEntry.getSourceFolders()) { if (sourceFolder.getFile() == root) { contentEntry.removeSourceFolder(sourceFolder); } } } ApplicationManager.getApplication() .runWriteAction( new Runnable() { @Override public void run() { model.commit(); } }); }