下面列出了com.intellij.psi.tree.IElementType#getIndex ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public int packData(IElementType tokenType, int state, boolean isRestartableState) {
return ((state & 0xFFFF) << 16) | (tokenType.getIndex() & 0xffff);
}
@Override
public int packData(IElementType tokenType, int state, boolean isRestartableState) {
final short idx = tokenType.getIndex();
return isRestartableState ? idx : -idx;
}
private ByType(@Nonnull Class<? extends PsiElement> elementClass, @Nullable IElementType elementType, @Nonnull Language fileLanguage) {
myElementClassName = elementClass.getName();
myElementTypeId = elementType != null ? elementType.getIndex() : -1;
myFileLanguageId = fileLanguage.getID();
}
private boolean isAcceptable(@Nonnull PsiElement element) {
IElementType type = PsiUtilCore.getElementType(element);
return myElementClassName.equals(element.getClass().getName()) && type != null && myElementTypeId == type.getIndex();
}