void (int fileId, @NotNull VirtualFile file) { IndexingFlag.cleanProcessedFlagRecursively(file); List<ID<?, ?>> nontrivialFileIndexedStates = IndexingStamp.getNontrivialFileIndexedStates(fileId); // transient index value can depend on disk value because former is diff to latter // it doesn't matter content froze or not: indices might depend on file name too removeTransientFileDataFromIndices(nontrivialFileIndexedStates, fileId, file); // The file was removed for (ID<?, ?> indexId : nontrivialFileIndexedStates) { if (!myRegisteredIndexes.isContentDependentIndex(indexId)) { removeSingleIndexValue(indexId, fileId); } } if (!file.isDirectory()) { // its data should be (lazily) wiped for every index getChangedFilesCollector().scheduleForUpdate(new DeletedVirtualFileStub((VirtualFileWithId)file)); } else { getChangedFilesCollector().removeScheduledFileFromUpdate(file); // no need to update it anymore } }