List<MappedRoot> (@NotNull VcsDirectoryMapping mapping, @NotNull Set<VirtualFile> directMappingDirs, @NotNull Disposable pointerDisposable) { AbstractVcs vcs = getMappingsVcs(mapping); if (vcs == null) { return Collections.emptyList(); } Collection<VirtualFile> defaultRoots = detectDefaultRootsFor(vcs, DefaultVcsRootPolicy.getInstance(myProject).getDefaultVcsRoots(), directMappingDirs); List<MappedRoot> result = new ArrayList<>(); ReadAction.run(() -> { for (VirtualFile vcsRoot : defaultRoots) { if (vcsRoot != null && vcsRoot.isDirectory()) { VirtualFilePointerManager.getInstance().create(vcsRoot, pointerDisposable, myFilePointerListener); result.add(new MappedRoot(vcs, mapping, vcsRoot)); } } }); return result; }