From 71a1e4e0242417cd2c5de1491c33da234dd95e67 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Wed, 7 Oct 2009 13:14:35 +0400 Subject: [PATCH] PsiChangeTracker tests --- .../com/intellij/openapi/vcs/changes/PsiChangeTracker.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java index 7613f32394..e8b35a78e9 100644 --- a/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java +++ b/platform/lang-impl/src/com/intellij/openapi/vcs/changes/PsiChangeTracker.java @@ -31,18 +31,23 @@ public class PsiChangeTracker { public static Map getElementsChanged(PsiFile file, final PsiElementFilter filter) { final Project project = file.getProject(); - FileStatus status = FileStatusManager.getInstance(project).getStatus(file.getVirtualFile()); final String oldText = getUnmodifiedDocument(file.getVirtualFile(), project); //TODO: make loop for different languages //TODO: for ( PsiFile f : file.getViewProvider().getAllFiles() ) //TODO: for some languages (eg XML) isEquivalentTo works ugly. Think about pluggable matchers for different languages/elements - final List elements = new ArrayList(); - final List oldElements = new ArrayList(); final PsiFile oldFile = oldText == null ? null : PsiFileFactory.getInstance(project).createFileFromText(oldText, file); + return getElementsChanged(file, oldFile, filter); + } - file.accept(new MyVisitor(filter, elements)); + public static Map getElementsChanged(PsiFile file, PsiFile oldFile, final PsiElementFilter filter) { + final Project project = file.getProject(); + final List elements = new ArrayList(); + final List oldElements = new ArrayList(); + file.accept(new MyVisitor(filter, elements)); + final VirtualFile vf = file.getVirtualFile(); + final FileStatus status = vf == null ? null : FileStatusManager.getInstance(project).getStatus(vf); final HashMap result = new HashMap(); if (status == FileStatus.ADDED || status == FileStatus.DELETED || -- 2.11.4.GIT