mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
[java-rd] IDEA-333104 IJ-CR-115518 fix cases when highlighting get null in parents
- added comments GitOrigin-RevId: 1b458215df3cddb2111f71e1c95e4973fd325a8f
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2a7eea18da
commit
d9352e003e
@@ -5,6 +5,13 @@ import com.intellij.psi.JavaDocTokenType;
|
||||
import com.intellij.psi.JavaTokenType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
|
||||
/**
|
||||
* The BasicElementTypes interface represents a collection of basic element types used in fronback java modules.
|
||||
* {@link TokenSet} is used for set, which contains `basic` types, which are not used in hierarchy.
|
||||
* for other sets {@link BasicJavaTokenSet} is used.
|
||||
*
|
||||
* @see BasicJavaTokenSet
|
||||
*/
|
||||
public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, BasicJavaElementType, BasicJavaDocElementType {
|
||||
|
||||
TokenSet BASIC_JAVA_PLAIN_COMMENT_BIT_SET = TokenSet.create(END_OF_LINE_COMMENT, C_STYLE_COMMENT);
|
||||
@@ -12,8 +19,6 @@ public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, Basi
|
||||
BasicJavaTokenSet.orSet(BasicJavaTokenSet.create(BASIC_JAVA_PLAIN_COMMENT_BIT_SET), BasicJavaTokenSet.create(DOC_COMMENT));
|
||||
BasicJavaTokenSet BASIC_JAVA_COMMENT_OR_WHITESPACE_BIT_SET =
|
||||
BasicJavaTokenSet.orSet(BasicJavaTokenSet.create(WHITE_SPACE), BASIC_JAVA_COMMENT_BIT_SET);
|
||||
|
||||
//token set, because it is keywords
|
||||
TokenSet BASIC_KEYWORD_BIT_SET = TokenSet.create(
|
||||
ABSTRACT_KEYWORD, ASSERT_KEYWORD, BOOLEAN_KEYWORD, BREAK_KEYWORD, BYTE_KEYWORD, CASE_KEYWORD, CATCH_KEYWORD, CHAR_KEYWORD,
|
||||
CLASS_KEYWORD, CONST_KEYWORD, CONTINUE_KEYWORD, DEFAULT_KEYWORD, DO_KEYWORD, DOUBLE_KEYWORD, ELSE_KEYWORD, ENUM_KEYWORD,
|
||||
@@ -27,10 +32,8 @@ public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, Basi
|
||||
NON_SEALED_KEYWORD, WHEN_KEYWORD
|
||||
);
|
||||
|
||||
//token set, because it is keywords
|
||||
TokenSet BASIC_LITERAL_BIT_SET = TokenSet.create(TRUE_KEYWORD, FALSE_KEYWORD, NULL_KEYWORD);
|
||||
|
||||
//token set, because it is keywords
|
||||
TokenSet BASIC_OPERATION_BIT_SET = TokenSet.create(
|
||||
EQ, GT, LT, EXCL, TILDE, QUEST, COLON, PLUS, MINUS, ASTERISK, DIV, AND, OR, XOR,
|
||||
PERC, EQEQ, LE, GE, NE, ANDAND, OROR, PLUSPLUS, MINUSMINUS, LTLT, GTGT, GTGTGT,
|
||||
@@ -96,21 +99,15 @@ public interface BasicElementTypes extends JavaTokenType, JavaDocTokenType, Basi
|
||||
BasicJavaTokenSet BASIC_FULL_MEMBER_BIT_SET = BasicJavaTokenSet.orSet(BASIC_MEMBER_BIT_SET, BasicJavaTokenSet.create(
|
||||
BASIC_CLASS_INITIALIZER));
|
||||
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_INTEGER_LITERALS = TokenSet.create(INTEGER_LITERAL, LONG_LITERAL);
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_REAL_LITERALS = TokenSet.create(FLOAT_LITERAL, DOUBLE_LITERAL);
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_STRING_LITERALS = TokenSet.create(STRING_LITERAL, TEXT_BLOCK_LITERAL);
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_TEXT_LITERALS = TokenSet.create(STRING_LITERAL, TEXT_BLOCK_LITERAL, CHARACTER_LITERAL);
|
||||
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_STRING_TEMPLATE_FRAGMENTS =
|
||||
TokenSet.create(STRING_TEMPLATE_BEGIN, STRING_TEMPLATE_MID, STRING_TEMPLATE_END,
|
||||
TEXT_BLOCK_TEMPLATE_BEGIN, TEXT_BLOCK_TEMPLATE_MID, TEXT_BLOCK_TEMPLATE_END);
|
||||
TEXT_BLOCK_TEMPLATE_BEGIN, TEXT_BLOCK_TEMPLATE_MID, TEXT_BLOCK_TEMPLATE_END);
|
||||
|
||||
//token set, because it is literals
|
||||
TokenSet BASIC_ALL_LITERALS =
|
||||
TokenSet.orSet(BASIC_INTEGER_LITERALS, BASIC_REAL_LITERALS, BASIC_TEXT_LITERALS, BASIC_LITERAL_BIT_SET);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.ParentProviderElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -9,6 +10,13 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* A utility class, analogue {@link TokenSet}.
|
||||
* The main purpose is to check if a given token type is present in the token set.
|
||||
* The main difference is that this class supports hierarchy with {@link ParentProviderElementType}
|
||||
* This class shouldn't be used in cases, when it needs to get all elements from this set, because in this case
|
||||
* iteration through all loaded IElementType will be performed
|
||||
*/
|
||||
public final class BasicJavaTokenSet {
|
||||
private final TokenSet myTokenSet;
|
||||
|
||||
@@ -21,6 +29,12 @@ public final class BasicJavaTokenSet {
|
||||
return BasicJavaAstTreeUtil.is(iElementType, myTokenSet);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return The TokenSet, which can be used to check that it contains some elements.
|
||||
* Not use this method if {@link TokenSet#getTypes()} will be used on this set,
|
||||
* in this case it is better to create TokenSet from values
|
||||
*/
|
||||
public TokenSet toTokenSet() {
|
||||
return TokenSet.forAllMatching(t -> this.contains(t));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user