package org.jetbrains.plugins.clojure.psi; import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.IStubElementType; import com.intellij.psi.stubs.IndexSink; import com.intellij.psi.PsiElement; import com.intellij.lang.ASTNode; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.plugins.clojure.file.ClojureFileType; /** * @author ilyas */ public abstract class ClStubElementType<S extends StubElement, T extends ClojurePsiElement> extends IStubElementType<S, T> { public ClStubElementType(@NonNls @NotNull String debugName) { super(debugName, ClojureFileType.CLOJURE_LANGUAGE); } public abstract PsiElement createElement(final ASTNode node); public void indexStub(final S stub, final IndexSink sink) { } public String getExternalId() { return "clj." + super.toString(); } }