package org.angularjs.index; import com.intellij.util.indexing.*; import com.intellij.util.io.DataExternalizer; import com.intellij.util.io.EnumeratorStringDescriptor; import com.intellij.util.io.KeyDescriptor; import org.jetbrains.annotations.NotNull; /** * @author Irina.Chernushina on 3/17/2016. */ public class AngularAppIndex extends FileBasedIndexExtension<String, AngularNamedItemDefinition> { public static final ID<String, AngularNamedItemDefinition> ANGULAR_APP_INDEX = ID.create("angularjs.app.index"); private final AngularAttributeIndexer myIndexer = new AngularAttributeIndexer("ng-app"); @NotNull @Override public FileBasedIndex.InputFilter getInputFilter() { return AngularTemplateIndexInputFilter.INSTANCE; } @Override public boolean dependsOnFileContent() { return true; } @NotNull @Override public ID<String, AngularNamedItemDefinition> getName() { return ANGULAR_APP_INDEX; } @NotNull @Override public DataIndexer<String, AngularNamedItemDefinition, FileContent> getIndexer() { return myIndexer; } @NotNull @Override public KeyDescriptor<String> getKeyDescriptor() { return EnumeratorStringDescriptor.INSTANCE; } @NotNull @Override public DataExternalizer<AngularNamedItemDefinition> getValueExternalizer() { return AngularViewDefinitionExternalizer.INSTANCE; } @Override public int getVersion() { return AngularIndexUtil.BASE_VERSION; } }