correct index id fix

This commit is contained in:
Eugene Zhuravlev
2013-06-25 14:08:13 +04:00
parent a741c2c93e
commit 164fb3f36b
2 changed files with 14 additions and 8 deletions
@@ -150,7 +150,7 @@ public class StubTreeLoaderImpl extends StubTreeLoader {
@Override
public long getStubTreeTimestamp(VirtualFile vFile) {
return IndexingStamp.getIndexStamp(vFile, StubUpdatingIndex.INDEX_ID);
return IndexingStamp.getIndexStamp(vFile, IndexInfrastructure.getStubId(StubUpdatingIndex.INDEX_ID, vFile.getFileType()));
}
@Override
@@ -77,15 +77,21 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi
public static boolean canHaveStub(@NotNull VirtualFile file) {
final FileType fileType = file.getFileType();
if (fileType instanceof LanguageFileType) {
Language l = ((LanguageFileType)fileType).getLanguage();
ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(l);
if (parserDefinition == null) return false;
final Language l = ((LanguageFileType)fileType).getLanguage();
final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(l);
if (parserDefinition == null) {
return false;
}
final IFileElementType elementType = parserDefinition.getFileNodeType();
if (elementType instanceof IStubFileElementType &&
(((IStubFileElementType)elementType).shouldBuildStubFor(file) ||
IndexingStamp.isFileIndexed(file, INDEX_ID, IndexInfrastructure.getIndexCreationStamp(INDEX_ID, file)))) {
return true;
if (elementType instanceof IStubFileElementType) {
if (((IStubFileElementType)elementType).shouldBuildStubFor(file)) {
return true;
}
final ID indexId = IndexInfrastructure.getStubId(INDEX_ID, file.getFileType());
if (IndexingStamp.isFileIndexed(file, indexId, IndexInfrastructure.getIndexCreationStamp(indexId))) {
return true;
}
}
}
final BinaryFileStubBuilder builder = BinaryFileStubBuilders.INSTANCE.forFileType(fileType);