reuse utility method PsiUtilCore.findFileSystemItem

This commit is contained in:
Sergey Malenkov
2019-01-30 19:41:30 +03:00
parent d5532041ab
commit 49471b78d7
17 changed files with 38 additions and 91 deletions
@@ -50,10 +50,7 @@ abstract class BaseSmartPointerPsiNode <Type extends SmartPsiElementPointer> ext
@Override
public PsiElement getTargetElement() {
VirtualFile file = getVirtualFileForValue();
if (file == null) {
return null;
}
return file.isDirectory() ? PsiManager.getInstance(getProject()).findDirectory(file) : PsiManager.getInstance(getProject()).findFile(file);
return PsiUtilCore.findFileSystemItem(getProject(), file);
}
private VirtualFile getVirtualFileForValue() {
@@ -22,7 +22,7 @@ package com.intellij.ide;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.PsiIconUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -33,10 +33,7 @@ public class FileIconPatcherImpl implements FileIconProvider {
@Override
@Nullable
public Icon getIcon(@NotNull final VirtualFile file, final int flags, final Project project) {
if (project == null || project.isDisposed()) return null;
final PsiFileSystemItem psiFile = file.isDirectory() ? PsiManager.getInstance(project).findDirectory(file)
: PsiManager.getInstance(project).findFile(file);
PsiFileSystemItem psiFile = PsiUtilCore.findFileSystemItem(project, file);
return psiFile == null ? null : PsiIconUtil.getProvidersIcon(psiFile, flags);
}
}
@@ -29,7 +29,6 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.refactoring.copy.CopyFilesOrDirectoriesHandler;
import com.intellij.refactoring.move.moveFilesOrDirectories.MoveFilesOrDirectoriesHandler;
@@ -65,12 +64,9 @@ public class FileListPasteProvider implements PasteProvider {
final List<PsiElement> elements = new ArrayList<>();
for (File file : fileList) {
final VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(file);
if (vFile != null) {
final PsiManager instance = PsiManager.getInstance(project);
PsiFileSystemItem item = vFile.isDirectory() ? instance.findDirectory(vFile) : instance.findFile(vFile);
if (item != null) {
elements.add(item);
}
PsiFileSystemItem item = PsiUtilCore.findFileSystemItem(project, vFile);
if (item != null) {
elements.add(item);
}
}
@@ -23,7 +23,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VFileProperty;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiUtilCore;
import org.jetbrains.annotations.NotNull;
public class GoToLinkTargetAction extends DumbAwareAction {
@@ -40,12 +40,9 @@ public class GoToLinkTargetAction extends DumbAwareAction {
VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(e.getDataContext());
if (project != null && file != null && file.is(VFileProperty.SYMLINK)) {
VirtualFile target = file.getCanonicalFile();
if (target != null) {
PsiManager psiManager = PsiManager.getInstance(project);
PsiFileSystemItem psiFile = target.isDirectory() ? psiManager.findDirectory(target) : psiManager.findFile(target);
if (psiFile != null) {
ProjectView.getInstance(project).select(psiFile, target, false);
}
PsiFileSystemItem psiFile = PsiUtilCore.findFileSystemItem(project, target);
if (psiFile != null) {
ProjectView.getInstance(project).select(psiFile, target, false);
}
}
}
@@ -16,11 +16,11 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiDirectory;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiManager;
import com.intellij.psi.codeStyle.FixingLayoutMatcher;
import com.intellij.psi.codeStyle.MinusculeMatcher;
import com.intellij.psi.codeStyle.NameUtil;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.Processor;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.FList;
@@ -119,7 +119,7 @@ public class GotoFileItemProvider extends DefaultChooseByNameItemProvider {
if (vFile != null) {
ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(myProject);
if (index.isInContent(vFile) || index.isInLibrary(vFile)) {
return vFile.isDirectory() ? PsiManager.getInstance(myProject).findDirectory(vFile) : PsiManager.getInstance(myProject).findFile(vFile);
return PsiUtilCore.findFileSystemItem(myProject, vFile);
}
}
}
@@ -86,6 +86,7 @@ import com.intellij.psi.*;
import com.intellij.psi.codeStyle.MinusculeMatcher;
import com.intellij.psi.codeStyle.NameUtil;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.ui.*;
import com.intellij.ui.awt.RelativePoint;
import com.intellij.ui.components.JBList;
@@ -1125,11 +1126,7 @@ public class SearchEverywhereAction extends AnAction implements CustomComponentA
@Nullable
private Component tryFileRenderer(Matcher matcher, JList list, Object value, int index, boolean isSelected) {
if (myProject != null && value instanceof VirtualFile) {
PsiManager psiManager = PsiManager.getInstance(myProject);
VirtualFile virtualFile = (VirtualFile)value;
value = !virtualFile.isValid() ? virtualFile :
virtualFile.isDirectory() ? psiManager.findDirectory(virtualFile) :
psiManager.findFile(virtualFile);
value = PsiUtilCore.findFileSystemItem(myProject, (VirtualFile)value);
}
if (value instanceof PsiElement) {
@@ -24,7 +24,7 @@ import com.intellij.openapi.vfs.VfsUtilCore;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.ui.*;
import com.intellij.ui.popup.util.DetailView;
import com.intellij.ui.popup.util.ItemWrapper;
@@ -57,9 +57,7 @@ public class BookmarkItem extends ItemWrapper implements Comparable<BookmarkItem
return;
}
PsiManager psiManager = PsiManager.getInstance(project);
PsiElement fileOrDir = file.isDirectory() ? psiManager.findDirectory(file) : psiManager.findFile(file);
PsiElement fileOrDir = PsiUtilCore.findFileSystemItem(project, file);
if (fileOrDir != null) {
renderer.setIcon(fileOrDir.getIcon(0));
}
@@ -30,6 +30,7 @@ import com.intellij.openapi.vcs.FileStatusManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiModificationTracker;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.Alarm;
import org.jetbrains.annotations.NotNull;
@@ -217,20 +218,8 @@ public class ProjectListBuilder extends AbstractListBuilder {
@Override
public void fileStatusChanged(@NotNull final VirtualFile vFile) {
final PsiManager manager = PsiManager.getInstance(myProject);
if (vFile.isDirectory()) {
final PsiDirectory directory = manager.findDirectory(vFile);
if (directory != null) {
myPsiTreeChangeListener.childrenChanged();
}
}
else {
final PsiFile file = manager.findFile(vFile);
if (file != null){
myPsiTreeChangeListener.childrenChanged();
}
}
PsiFileSystemItem item = PsiUtilCore.findFileSystemItem(myProject, vFile);
if (item != null) myPsiTreeChangeListener.childrenChanged();
}
}
@@ -26,8 +26,8 @@ import com.intellij.openapi.vfs.LocalFileSystem;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFileSystemItem;
import com.intellij.psi.PsiManager;
import com.intellij.psi.SmartPsiElementPointer;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.ui.awt.RelativeRectangle;
import com.intellij.util.IconUtil;
import com.intellij.util.containers.JBIterable;
@@ -255,13 +255,9 @@ public class FavoritesPanel {
List<PsiFileSystemItem> sourceFiles = new ArrayList<>();
for (File file : fileList) {
final VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(file);
if (vFile != null) {
final PsiFileSystemItem psiFile = vFile.isDirectory()
? PsiManager.getInstance(myProject).findDirectory(vFile)
: PsiManager.getInstance(myProject).findFile(vFile);
if (psiFile != null) {
sourceFiles.add(psiFile);
}
PsiFileSystemItem psiFile = PsiUtilCore.findFileSystemItem(myProject, vFile);
if (psiFile != null) {
sourceFiles.add(psiFile);
}
}
return sourceFiles.toArray(new PsiFileSystemItem[0]);
@@ -733,9 +733,7 @@ public class FavoritesTreeViewPanel extends JPanel implements DataProvider, Dock
public void add(@NotNull DockableContent content, RelativePoint dropTarget) {
if (content.getKey() instanceof VirtualFile) {
VirtualFile vFile = (VirtualFile)content.getKey();
final PsiFileSystemItem psiFile = vFile.isDirectory()
? PsiManager.getInstance(myProject).findDirectory(vFile)
: PsiManager.getInstance(myProject).findFile(vFile);
PsiFileSystemItem psiFile = PsiUtilCore.findFileSystemItem(myProject, vFile);
Point p = dropTarget.getScreenPoint();
SwingUtilities.convertPointFromScreen(p, myTree);
FavoritesListNode node = findFavoritesListNode(p);
@@ -21,6 +21,7 @@ import com.intellij.openapi.vcs.FileStatusListener;
import com.intellij.openapi.vcs.FileStatusManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.messages.MessageBusConnection;
import com.intellij.util.ui.tree.TreeUtil;
import org.jetbrains.annotations.NotNull;
@@ -206,16 +207,8 @@ public class FavoritesViewTreeBuilder extends BaseProjectTreeBuilder {
@Override
public void fileStatusChanged(@NotNull VirtualFile vFile) {
PsiElement element;
PsiManager psiManager = PsiManager.getInstance(myProject);
if (vFile.isDirectory()) {
element = psiManager.findDirectory(vFile);
}
else {
element = psiManager.findFile(vFile);
}
if (!addSubtreeToUpdateByElement(element) &&
PsiElement element = PsiUtilCore.findFileSystemItem(myProject, vFile);
if (element != null && !addSubtreeToUpdateByElement(element) &&
element instanceof PsiFile &&
((PsiFile)element).getFileType() == StdFileTypes.JAVA) {
addSubtreeToUpdateByElement(((PsiFile)element).getContainingDirectory());
@@ -77,8 +77,7 @@ public abstract class SelectInTargetPsiWrapper implements SelectInTarget {
VirtualFile file = context.getVirtualFile();
Object selector = context.getSelectorInFile();
if (selector == null) {
PsiManager psiManager = PsiManager.getInstance(myProject);
selector = file.isDirectory() ? psiManager.findDirectory(file) : psiManager.findFile(file);
selector = PsiUtilCore.findFileSystemItem(myProject, file);
}
if (selector instanceof PsiElement) {
@@ -22,6 +22,7 @@ import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.problems.ProblemListener;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.PsiUtilCore;
import com.intellij.util.Alarm;
import com.intellij.util.SmartList;
import com.intellij.util.messages.MessageBusConnection;
@@ -136,9 +137,7 @@ public class ProjectTreeBuilder extends BaseProjectTreeBuilder {
}
private PsiElement findPsi(@NotNull VirtualFile vFile) {
if (!vFile.isValid()) return null;
PsiManager psiManager = PsiManager.getInstance(myProject);
return vFile.isDirectory() ? psiManager.findDirectory(vFile) : psiManager.findFile(vFile);
return PsiUtilCore.findFileSystemItem(myProject, vFile);
}
private class MyProblemListener implements ProblemListener {
@@ -220,13 +220,9 @@ abstract class ProjectViewDropTarget implements DnDNativeTarget {
List<PsiFileSystemItem> sourceFiles = new ArrayList<>();
for (File file : fileList) {
final VirtualFile vFile = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(file);
if (vFile != null) {
final PsiFileSystemItem psiFile = vFile.isDirectory()
? PsiManager.getInstance(myProject).findDirectory(vFile)
: PsiManager.getInstance(myProject).findFile(vFile);
if (psiFile != null) {
sourceFiles.add(psiFile);
}
PsiFileSystemItem psiFile = PsiUtilCore.findFileSystemItem(myProject, vFile);
if (psiFile != null) {
sourceFiles.add(psiFile);
}
}
return sourceFiles.toArray(new PsiFileSystemItem[0]);
@@ -478,9 +478,7 @@ public final class ScopeViewTreeModel extends BaseTreeModel<AbstractTreeNode> im
@Nullable
final PsiFileSystemItem findFileSystemItem(@NotNull VirtualFile file) {
Project project = !file.isValid() ? null : getProject();
PsiManager manager = project == null || project.isDisposed() ? null : PsiManager.getInstance(project);
return manager == null ? null : file.isDirectory() ? manager.findDirectory(file) : manager.findFile(file);
return PsiUtilCore.findFileSystemItem(getProject(), file);
}
@SuppressWarnings("SameParameterValue")
@@ -3,8 +3,8 @@ package org.jetbrains.idea.devkit.testAssistant
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager
import com.intellij.psi.PsiReference
import com.intellij.psi.util.PsiUtilCore
import junit.framework.TestCase
abstract class TestDataReferenceTestCase : TestDataPathTestCase() {
@@ -15,8 +15,7 @@ abstract class TestDataReferenceTestCase : TestDataPathTestCase() {
}
fun assertResolvedTo(virtualFile: VirtualFile, referenceTest: String) {
val psiManager = PsiManager.getInstance(project)
val fileSystemItem = if (virtualFile.isDirectory) psiManager.findDirectory(virtualFile) else psiManager.findFile(virtualFile)
val fileSystemItem = PsiUtilCore.findFileSystemItem(project, virtualFile)
TestCase.assertEquals(fileSystemItem, myFixture.file.getReferenceForText(referenceTest).resolve())
}
@@ -4,11 +4,9 @@ package com.jetbrains.extensions.python
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiFileSystemItem
import com.intellij.psi.PsiManager
import com.intellij.psi.util.PsiUtilCore
fun VirtualFile.toPsi(project: Project): PsiFileSystemItem? {
val manager = PsiManager.getInstance(project)
return if (this.isDirectory) manager.findDirectory(this) else manager.findFile(this)
return PsiUtilCore.findFileSystemItem(project, this)
}