mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
reuse utility method PsiUtilCore.findFileSystemItem
This commit is contained in:
+1
-4
@@ -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]);
|
||||
|
||||
+1
-3
@@ -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);
|
||||
|
||||
+3
-10
@@ -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")
|
||||
|
||||
+2
-3
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user