diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DetectedFacetManager.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DetectedFacetManager.java index ea0ac064de30..eefc73165e91 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DetectedFacetManager.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/DetectedFacetManager.java @@ -25,6 +25,7 @@ import com.intellij.facet.impl.autodetecting.model.DetectedFacetInfo; import com.intellij.facet.impl.autodetecting.model.FacetInfo2; import com.intellij.facet.impl.autodetecting.model.FacetInfoBackedByFacet; import com.intellij.facet.impl.autodetecting.model.ProjectFacetInfoSet; +import com.intellij.ide.caches.FileContent; import com.intellij.notification.Notification; import com.intellij.notification.NotificationListener; import com.intellij.notification.NotificationType; @@ -392,7 +393,7 @@ public class DetectedFacetManager implements Disposable { } } for (VirtualFile file : files) { - myAutodetectingManager.processFile(file); + myAutodetectingManager.processFile(new FileContent(file)); } } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/EnableAutodetectionWorker.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/EnableAutodetectionWorker.java index 325db2644062..ba8b339ffa77 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/EnableAutodetectionWorker.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/EnableAutodetectionWorker.java @@ -16,6 +16,7 @@ package com.intellij.facet.impl.autodetecting; import com.intellij.facet.FacetType; +import com.intellij.ide.caches.FileContent; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.progress.ProgressManager; @@ -146,7 +147,7 @@ public class EnableAutodetectionWorker { } } else { - myFacetAutodetectingManager.processFile(file); + myFacetAutodetectingManager.processFile(new FileContent(file)); } } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetAutodetectingManagerImpl.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetAutodetectingManagerImpl.java index 6b079b7781a2..c7eb340c0255 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetAutodetectingManagerImpl.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetAutodetectingManagerImpl.java @@ -25,6 +25,7 @@ import com.intellij.facet.autodetecting.UnderlyingFacetSelector; import com.intellij.facet.impl.autodetecting.model.FacetInfo2; import com.intellij.facet.impl.autodetecting.model.ProjectFacetInfoSet; import com.intellij.facet.pointers.FacetPointersManager; +import com.intellij.ide.caches.FileContent; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.components.PersistentStateComponent; import com.intellij.openapi.components.ProjectComponent; @@ -36,7 +37,6 @@ import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.MultiValuesMap; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.psi.*; import com.intellij.util.SmartList; import com.intellij.util.ui.update.MergingUpdateQueue; @@ -153,23 +153,24 @@ public class FacetAutodetectingManagerImpl extends FacetAutodetectingManager imp myDisabledAutodetectionInfo = state; } - public void processFile(VirtualFile virtualFile) { - if (!virtualFile.isValid() || virtualFile.isDirectory() || myProject.isDisposed() - || !virtualFile.exists() || !myFileIndex.getProjectFileIndex().isInContent(virtualFile)) return; + public void processFile(FileContent fileContent) { + final VirtualFile file = fileContent.getVirtualFile(); + if (!file.isValid() || file.isDirectory() || myProject.isDisposed() + || !file.exists() || !myFileIndex.getProjectFileIndex().isInContent(file)) return; - FileType fileType = virtualFile.getFileType(); + FileType fileType = file.getFileType(); Collection detectors = myDetectors.get(fileType); if (detectors == null) return; List> facets = null; for (FacetDetectorWrapper detector : detectors) { - facets = process(virtualFile, detector, facets); + facets = process(file, fileContent, detector, facets); } - String url = virtualFile.getUrl(); + String url = file.getUrl(); FacetDetectionIndexEntry indexEntry = myFileIndex.getIndexEntry(url); if (indexEntry == null) { - indexEntry = new FacetDetectionIndexEntry(virtualFile.getTimeStamp()); + indexEntry = new FacetDetectionIndexEntry(file.getTimeStamp()); } Collection removed = indexEntry.update(myFacetPointersManager, facets); @@ -193,9 +194,11 @@ public class FacetAutodetectingManagerImpl extends FacetAutodetectingManager imp return myDetectedFacetSet; } - private List> process(final VirtualFile virtualFile, final FacetDetectorWrapper detector, - List> facets) { - if (!myDetectionInProgress && detector.getVirtualFileFilter().accept(virtualFile)) { + private List> process(final VirtualFile virtualFile, + FileContent fileContent, + final FacetDetectorWrapper detector, + List> facets) { + if (!myDetectionInProgress && detector.getFileContentFilter().accept(fileContent)) { try { myDetectionInProgress = true; FacetInfo2 facet = detector.detectFacet(virtualFile, myPsiManager); @@ -255,7 +258,7 @@ public class FacetAutodetectingManagerImpl extends FacetAutodetectingManager imp public void queueUpdate(final VirtualFile file) { Update update = new Update("file:" + file.getUrl()) { public void run() { - processFile(file); + processFile(new FileContent(file)); } }; @@ -346,23 +349,23 @@ public class FacetAutodetectingManagerImpl extends FacetAutodetectingManager imp myType = type; } - public void register(@NotNull final FileType fileType, @NotNull final VirtualFileFilter virtualFileFilter, + public void register(@NotNull final FileType fileType, @NotNull final FileContentFilter fileContentFilter, @NotNull final FacetDetector facetDetector, final UnderlyingFacetSelector selector) { myHasDetectors = true; myId2Detector.put(facetDetector.getId(), facetDetector); myDetectors.put(fileType, new FacetByVirtualFileDetectorWrapper(myDetectedFacetSet, myType, - FacetAutodetectingManagerImpl.this, virtualFileFilter, + FacetAutodetectingManagerImpl.this, fileContentFilter, facetDetector, selector)); } - public void register(@NotNull final FileType fileType, @NotNull final VirtualFileFilter virtualFileFilter, + public void register(@NotNull final FileType fileType, @NotNull final FileContentFilter fileContentFilter, @NotNull final Condition psiFileFilter, @NotNull final FacetDetector facetDetector, final UnderlyingFacetSelector selector) { myHasDetectors = true; myId2Detector.put(facetDetector.getId(), facetDetector); myDetectors.put(fileType, new FacetByPsiFileDetectorWrapper(myDetectedFacetSet, myType, FacetAutodetectingManagerImpl.this, - virtualFileFilter, facetDetector, psiFileFilter, selector)); + fileContentFilter, facetDetector, psiFileFilter, selector)); } public boolean hasDetectors() { diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByPsiFileDetectorWrapper.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByPsiFileDetectorWrapper.java index 1ecf4389dcfd..569111ad8127 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByPsiFileDetectorWrapper.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByPsiFileDetectorWrapper.java @@ -27,7 +27,6 @@ import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.util.Condition; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiManager; @@ -38,10 +37,10 @@ public class FacetByPsiFileDetectorWrapper myPsiFileFilter; public FacetByPsiFileDetectorWrapper(ProjectFacetInfoSet projectFacetSet, FacetType facetType, - final AutodetectionFilter autodetectionFilter, final VirtualFileFilter virtualFileFilter, + final AutodetectionFilter autodetectionFilter, final FileContentFilter fileContentFilter, final FacetDetector facetDetector, Condition psiFileFilter, final UnderlyingFacetSelector selector) { - super(projectFacetSet, facetType, autodetectionFilter, virtualFileFilter, facetDetector, selector); + super(projectFacetSet, facetType, autodetectionFilter, fileContentFilter, facetDetector, selector); myPsiFileFilter = psiFileFilter; } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByVirtualFileDetectorWrapper.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByVirtualFileDetectorWrapper.java index 8dfc3d0ea798..b1ed6f59cc17 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByVirtualFileDetectorWrapper.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetByVirtualFileDetectorWrapper.java @@ -26,7 +26,6 @@ import com.intellij.facet.impl.autodetecting.model.ProjectFacetInfoSet; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleUtil; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.psi.PsiManager; import org.jetbrains.annotations.Nullable; @@ -35,10 +34,10 @@ import org.jetbrains.annotations.Nullable; */ public class FacetByVirtualFileDetectorWrapper, U extends FacetConfiguration> extends FacetDetectorWrapper { public FacetByVirtualFileDetectorWrapper(ProjectFacetInfoSet projectFacetSet, FacetType facetType, - final AutodetectionFilter autodetectionFilter, final VirtualFileFilter virtualFileFilter, + final AutodetectionFilter autodetectionFilter, final FileContentFilter fileContentFilter, final FacetDetector facetDetector, final UnderlyingFacetSelector selector) { - super(projectFacetSet, facetType, autodetectionFilter, virtualFileFilter, facetDetector, selector); + super(projectFacetSet, facetType, autodetectionFilter, fileContentFilter, facetDetector, selector); } @Nullable diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectionIndex.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectionIndex.java index 53c3047c8b16..fe87963b467d 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectionIndex.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectionIndex.java @@ -22,6 +22,7 @@ import com.intellij.facet.FacetTypeRegistry; import com.intellij.facet.impl.autodetecting.model.DetectedFacetInfo; import com.intellij.facet.pointers.FacetPointer; import com.intellij.facet.pointers.FacetPointersManager; +import com.intellij.ide.caches.FileContent; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; @@ -135,8 +136,8 @@ public class FacetDetectionIndex extends AbstractFileIndex implements Fa myPresentation = presentation; } + public void registerUniversalDetectorByRootTag(@NotNull final String rootTag, @NotNull final FacetDetector detector) { + registerUniversalDetector(StdFileTypes.XML, new VirtualFileFilter() { + @Override + public boolean accept(VirtualFile file) { + try { + return rootTag.equals(NanoXmlUtil.parseHeaderWithException(file).getRootTagLocalName()); + } + catch (IOException e) { + return false; + } + } + }, new FileContentFilter() { + @Override + public boolean accept(FileContent fileContent) { + try { + return rootTag.equals(parseHeaderWithException(fileContent).getRootTagLocalName()); + } + catch (IOException e) { + return false; + } + } + }, detector); + } + + @NotNull + private static XmlFileHeader parseHeaderWithException(FileContent fileContent) throws IOException { + final CharSequence contentText = CacheUtil.getContentText(fileContent); + //noinspection IOResourceOpenedButNotSafelyClosed + return NanoXmlUtil.parseHeaderWithException(new CharSequenceReader(contentText)); + } + public void registerUniversalDetectorByFileNameAndRootTag(@NotNull @NonNls String fileName, @NotNull @NonNls String rootTag, @NotNull final FacetDetector detector, @@ -101,7 +136,7 @@ public class FacetDetectorRegistryEx implements Fa @NotNull final FacetDetector facetDetector, @Nullable UnderlyingFacetSelector selector) { if (myOnTheFlyDelegate != null) { - myOnTheFlyDelegate.register(fileType, virtualFileFilter, psiFileFilter, facetDetector, selector); + myOnTheFlyDelegate.register(fileType, new MyFileContentFilter(virtualFileFilter), psiFileFilter, facetDetector, selector); } } @@ -136,11 +171,16 @@ public class FacetDetectorRegistryEx implements Fa } public void registerUniversalDetector(@NotNull final FileType fileType, @NotNull final VirtualFileFilter virtualFileFilter, @NotNull final FacetDetector facetDetector) { + registerUniversalDetector(fileType, virtualFileFilter, new MyFileContentFilter(virtualFileFilter), facetDetector); + } + + private void registerUniversalDetector(@NotNull final FileType fileType, @NotNull VirtualFileFilter virtualFileFilter, @NotNull final FileContentFilter fileContentFilter, + @NotNull final FacetDetector facetDetector) { if (myForWizardDelegate != null) { myForWizardDelegate.register(fileType, virtualFileFilter, facetDetector); } if (myOnTheFlyDelegate != null) { - myOnTheFlyDelegate.register(fileType, virtualFileFilter, facetDetector, null); + myOnTheFlyDelegate.register(fileType, fileContentFilter, facetDetector, null); } } @@ -149,7 +189,7 @@ public class FacetDetectorRegistryEx implements Fa final UnderlyingFacetSelector underlyingFacetSelector) { registerSubFacetDetectorForWizard(fileType, virtualFilePattern, facetDetector, underlyingFacetSelector); if (myOnTheFlyDelegate != null) { - myOnTheFlyDelegate.register(fileType, new MyPatternFilter(virtualFilePattern), facetDetector, underlyingFacetSelector); + myOnTheFlyDelegate.register(fileType, new MyFileContentFilter(new MyPatternFilter(virtualFilePattern)), facetDetector, underlyingFacetSelector); } } @@ -189,4 +229,17 @@ public class FacetDetectorRegistryEx implements Fa DetectedFacetPresentation presentation = registry.myPresentation; return presentation != null ? presentation : DefaultDetectedFacetPresentation.INSTANCE; } + + private static class MyFileContentFilter implements FileContentFilter { + private final VirtualFileFilter myVirtualFileFilter; + + public MyFileContentFilter(VirtualFileFilter virtualFileFilter) { + myVirtualFileFilter = virtualFileFilter; + } + + @Override + public boolean accept(FileContent fileContent) { + return myVirtualFileFilter.accept(fileContent.getVirtualFile()); + } + } } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java index 9c68d7f08147..51288875444f 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetDetectorWrapper.java @@ -16,19 +16,23 @@ package com.intellij.facet.impl.autodetecting; -import com.intellij.facet.*; +import com.intellij.facet.Facet; +import com.intellij.facet.FacetConfiguration; +import com.intellij.facet.FacetType; +import com.intellij.facet.FacetTypeId; import com.intellij.facet.autodetecting.FacetDetector; import com.intellij.facet.autodetecting.UnderlyingFacetSelector; -import com.intellij.facet.impl.autodetecting.model.*; +import com.intellij.facet.impl.autodetecting.model.FacetInfo2; +import com.intellij.facet.impl.autodetecting.model.ProjectFacetInfoSet; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.openapi.vfs.VirtualFileFilter; import com.intellij.psi.PsiManager; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Collections; +import java.util.Map; /** * @author nik @@ -36,25 +40,25 @@ import java.util.*; public abstract class FacetDetectorWrapper, U extends FacetConfiguration> { private static final Logger LOG = Logger.getInstance("#com.intellij.facet.impl.autodetecting.FacetDetectorWrapper"); private final AutodetectionFilter myAutodetectionFilter; - private final VirtualFileFilter myVirtualFileFilter; + private final FileContentFilter myFileContentFilter; private final FacetDetector myFacetDetector; private final UnderlyingFacetSelector myUnderlyingFacetSelector; private final ProjectFacetInfoSet myDetectedFacetSet; private final FacetType myFacetType; - protected FacetDetectorWrapper(ProjectFacetInfoSet projectFacetSet, FacetType facetType, final AutodetectionFilter autodetectionFilter, final VirtualFileFilter virtualFileFilter, + protected FacetDetectorWrapper(ProjectFacetInfoSet projectFacetSet, FacetType facetType, final AutodetectionFilter autodetectionFilter, final FileContentFilter fileContentFilter, final FacetDetector facetDetector, final UnderlyingFacetSelector selector) { myDetectedFacetSet = projectFacetSet; myFacetType = facetType; myAutodetectionFilter = autodetectionFilter; - myVirtualFileFilter = virtualFileFilter; + myFileContentFilter = fileContentFilter; myFacetDetector = facetDetector; myUnderlyingFacetSelector = selector; } - public VirtualFileFilter getVirtualFileFilter() { - return myVirtualFileFilter; + public FileContentFilter getFileContentFilter() { + return myFileContentFilter; } public FacetType getFacetType() { diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetOnTheFlyDetectorRegistry.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetOnTheFlyDetectorRegistry.java index d2b4667ae68f..05ce154c2644 100644 --- a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetOnTheFlyDetectorRegistry.java +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FacetOnTheFlyDetectorRegistry.java @@ -20,9 +20,8 @@ import com.intellij.facet.FacetConfiguration; import com.intellij.facet.autodetecting.FacetDetector; import com.intellij.facet.autodetecting.UnderlyingFacetSelector; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.vfs.VirtualFileFilter; -import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.util.Condition; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import org.jetbrains.annotations.NotNull; @@ -31,11 +30,11 @@ import org.jetbrains.annotations.NotNull; */ public interface FacetOnTheFlyDetectorRegistry { - void register(@NotNull FileType fileType, @NotNull VirtualFileFilter virtualFileFilter, + void register(@NotNull FileType fileType, @NotNull FileContentFilter virtualFileFilter, @NotNull FacetDetector detector, UnderlyingFacetSelector selector); - void register(@NotNull FileType fileType, @NotNull VirtualFileFilter virtualFileFilter, + void register(@NotNull FileType fileType, @NotNull FileContentFilter virtualFileFilter, @NotNull Condition psiFileFilter, @NotNull FacetDetector detector, UnderlyingFacetSelector selector); } diff --git a/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FileContentFilter.java b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FileContentFilter.java new file mode 100644 index 000000000000..20f52516685e --- /dev/null +++ b/java/idea-ui/src/com/intellij/facet/impl/autodetecting/FileContentFilter.java @@ -0,0 +1,25 @@ +/* + * Copyright 2000-2010 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.facet.impl.autodetecting; + +import com.intellij.ide.caches.FileContent; + +/** + * @author nik + */ +public interface FileContentFilter { + boolean accept(FileContent fileContent); +} diff --git a/platform/lang-api/src/com/intellij/util/xml/NanoXmlUtil.java b/platform/lang-api/src/com/intellij/util/xml/NanoXmlUtil.java index 64b8a3e9b8d3..2aa347c91cc1 100644 --- a/platform/lang-api/src/com/intellij/util/xml/NanoXmlUtil.java +++ b/platform/lang-api/src/com/intellij/util/xml/NanoXmlUtil.java @@ -131,6 +131,11 @@ public class NanoXmlUtil { } } + @NotNull + public static XmlFileHeader parseHeaderWithException(Reader reader) throws IOException { + return parseHeader(new MyXMLReader(reader)); + } + @NotNull public static XmlFileHeader parseHeaderWithException(final VirtualFile file) throws IOException { return parseHeader(new MyXMLReader(file.getInputStream())); diff --git a/platform/lang-impl/src/com/intellij/util/fileIndex/AbstractFileIndex.java b/platform/lang-impl/src/com/intellij/util/fileIndex/AbstractFileIndex.java index 7a92fbf19fbf..d8fef19ea388 100644 --- a/platform/lang-impl/src/com/intellij/util/fileIndex/AbstractFileIndex.java +++ b/platform/lang-impl/src/com/intellij/util/fileIndex/AbstractFileIndex.java @@ -76,7 +76,7 @@ public abstract class AbstractFileIndex imple public abstract void queueEntryUpdate(final VirtualFile file); - protected abstract void doUpdateIndexEntry(final VirtualFile file); + protected abstract void doUpdateIndexEntry(final FileContent fileContent); public ProjectFileIndex getProjectFileIndex() { return myProjectFileIndex; @@ -87,12 +87,12 @@ public abstract class AbstractFileIndex imple return new File(PathManager.getSystemPath() + File.separator + dirName + File.separator + cacheFileName); } - public final void updateIndexEntry(final VirtualFile file) { - if (!myStartupManager.startupActivityPassed() || myProjectFileIndex.isIgnored(file)) { + public final void updateIndexEntry(final FileContent fileContent) { + if (!myStartupManager.startupActivityPassed() || myProjectFileIndex.isIgnored(fileContent.getVirtualFile())) { return; } - doUpdateIndexEntry(file); + doUpdateIndexEntry(fileContent); } public final void removeIndexEntry(final VirtualFile file) { @@ -341,7 +341,7 @@ public abstract class AbstractFileIndex imple } public void processFile(FileContent fileContent) { - updateIndexEntry(fileContent.getVirtualFile()); + updateIndexEntry(fileContent); } public void updatingDone() { diff --git a/platform/lang-impl/src/com/intellij/util/fileIndex/FileIndexRefreshCacheUpdater.java b/platform/lang-impl/src/com/intellij/util/fileIndex/FileIndexRefreshCacheUpdater.java index a535a7b86742..17bec369758a 100644 --- a/platform/lang-impl/src/com/intellij/util/fileIndex/FileIndexRefreshCacheUpdater.java +++ b/platform/lang-impl/src/com/intellij/util/fileIndex/FileIndexRefreshCacheUpdater.java @@ -60,7 +60,7 @@ public class FileIndexRefreshCacheUpdater extends VirtualFileAdapter implements public void afterRefreshFinish(boolean asynchonous) { if (!asynchonous) { for (VirtualFile file : myChangedFiles) { - myFileIndex.updateIndexEntry(file); + myFileIndex.updateIndexEntry(new FileContent(file)); } updatingDone(); } @@ -75,7 +75,7 @@ public class FileIndexRefreshCacheUpdater extends VirtualFileAdapter implements } public void processFile(FileContent fileContent) { - myFileIndex.updateIndexEntry(fileContent.getVirtualFile()); + myFileIndex.updateIndexEntry(fileContent); } public void updatingDone() { @@ -129,7 +129,7 @@ public class FileIndexRefreshCacheUpdater extends VirtualFileAdapter implements } else { if (create) { - myFileIndex.updateIndexEntry(file); + myFileIndex.updateIndexEntry(new FileContent(file)); } else { myFileIndex.removeIndexEntry(file);