Combining two color keys for KDoc tags (plain KDoc + KDoc tag).

This commit is contained in:
Evgeny Gerashchenko
2013-06-27 21:56:45 +04:00
parent 8cf66b8a14
commit b7b74cd3b8
2 changed files with 39 additions and 36 deletions
@@ -54,7 +54,7 @@ public class JetColorSettingsPage implements ColorSettingsPage {
"\n" +
"/**\n" +
" * Doc comment here for `SomeClass`\n" +
" * <KDOC_TAG>@see</KDOC_TAG> Iterator#next()\n" +
" * @see Iterator#next()\n" +
" */\n" +
"[<ANNOTATION>Deprecated</ANNOTATION>]\n" +
"<BUILTIN_ANNOTATION>public</BUILTIN_ANNOTATION> class <CLASS>MyClass</CLASS><<BUILTIN_ANNOTATION>out</BUILTIN_ANNOTATION> <TYPE_PARAMETER>T</TYPE_PARAMETER> : <TRAIT>Iterable</TRAIT><<TYPE_PARAMETER>T</TYPE_PARAMETER>>>(var <INSTANCE_PROPERTY><MUTABLE_VARIABLE>prop1</MUTABLE_VARIABLE></INSTANCE_PROPERTY> : Int) {\n" +
@@ -30,7 +30,8 @@ import java.util.HashMap;
import java.util.Map;
public class JetHighlighter extends SyntaxHighlighterBase {
private static final Map<IElementType, TextAttributesKey> keys;
private static final Map<IElementType, TextAttributesKey> keys1;
private static final Map<IElementType, TextAttributesKey> keys2;
@NotNull
public Lexer getHighlightingLexer() {
@@ -39,53 +40,55 @@ public class JetHighlighter extends SyntaxHighlighterBase {
@NotNull
public TextAttributesKey[] getTokenHighlights(IElementType tokenType) {
return pack(keys.get(tokenType));
return pack(keys1.get(tokenType), keys2.get(tokenType));
}
static {
keys = new HashMap<IElementType, TextAttributesKey>();
keys1 = new HashMap<IElementType, TextAttributesKey>();
keys2 = new HashMap<IElementType, TextAttributesKey>();
fillMap(keys, JetTokens.KEYWORDS, JetHighlightingColors.KEYWORD);
fillMap(keys1, JetTokens.KEYWORDS, JetHighlightingColors.KEYWORD);
keys.put(JetTokens.AS_SAFE, JetHighlightingColors.KEYWORD);
keys.put(JetTokens.LABEL_IDENTIFIER, JetHighlightingColors.LABEL);
keys.put(JetTokens.ATAT, JetHighlightingColors.LABEL);
keys.put(JetTokens.INTEGER_LITERAL, JetHighlightingColors.NUMBER);
keys.put(JetTokens.FLOAT_LITERAL, JetHighlightingColors.NUMBER);
keys1.put(JetTokens.AS_SAFE, JetHighlightingColors.KEYWORD);
keys1.put(JetTokens.LABEL_IDENTIFIER, JetHighlightingColors.LABEL);
keys1.put(JetTokens.ATAT, JetHighlightingColors.LABEL);
keys1.put(JetTokens.INTEGER_LITERAL, JetHighlightingColors.NUMBER);
keys1.put(JetTokens.FLOAT_LITERAL, JetHighlightingColors.NUMBER);
fillMap(keys, JetTokens.OPERATIONS.minus(
fillMap(keys1, JetTokens.OPERATIONS.minus(
TokenSet.create(JetTokens.IDENTIFIER, JetTokens.LABEL_IDENTIFIER)).minus(
JetTokens.KEYWORDS), JetHighlightingColors.OPERATOR_SIGN);
keys.put(JetTokens.LPAR, JetHighlightingColors.PARENTHESIS);
keys.put(JetTokens.RPAR, JetHighlightingColors.PARENTHESIS);
keys.put(JetTokens.LBRACE, JetHighlightingColors.BRACES);
keys.put(JetTokens.RBRACE, JetHighlightingColors.BRACES);
keys.put(JetTokens.LBRACKET, JetHighlightingColors.BRACKETS);
keys.put(JetTokens.RBRACKET, JetHighlightingColors.BRACKETS);
keys.put(JetTokens.COMMA, JetHighlightingColors.COMMA);
keys.put(JetTokens.SEMICOLON, JetHighlightingColors.SEMICOLON);
keys.put(JetTokens.DOT, JetHighlightingColors.DOT);
keys.put(JetTokens.ARROW, JetHighlightingColors.ARROW);
keys1.put(JetTokens.LPAR, JetHighlightingColors.PARENTHESIS);
keys1.put(JetTokens.RPAR, JetHighlightingColors.PARENTHESIS);
keys1.put(JetTokens.LBRACE, JetHighlightingColors.BRACES);
keys1.put(JetTokens.RBRACE, JetHighlightingColors.BRACES);
keys1.put(JetTokens.LBRACKET, JetHighlightingColors.BRACKETS);
keys1.put(JetTokens.RBRACKET, JetHighlightingColors.BRACKETS);
keys1.put(JetTokens.COMMA, JetHighlightingColors.COMMA);
keys1.put(JetTokens.SEMICOLON, JetHighlightingColors.SEMICOLON);
keys1.put(JetTokens.DOT, JetHighlightingColors.DOT);
keys1.put(JetTokens.ARROW, JetHighlightingColors.ARROW);
keys.put(JetTokens.OPEN_QUOTE, JetHighlightingColors.STRING);
keys.put(JetTokens.CLOSING_QUOTE, JetHighlightingColors.STRING);
keys.put(JetTokens.REGULAR_STRING_PART, JetHighlightingColors.STRING);
keys.put(JetTokens.LONG_TEMPLATE_ENTRY_END, JetHighlightingColors.STRING_ESCAPE);
keys.put(JetTokens.LONG_TEMPLATE_ENTRY_START, JetHighlightingColors.STRING_ESCAPE);
keys.put(JetTokens.SHORT_TEMPLATE_ENTRY_START, JetHighlightingColors.STRING_ESCAPE);
keys1.put(JetTokens.OPEN_QUOTE, JetHighlightingColors.STRING);
keys1.put(JetTokens.CLOSING_QUOTE, JetHighlightingColors.STRING);
keys1.put(JetTokens.REGULAR_STRING_PART, JetHighlightingColors.STRING);
keys1.put(JetTokens.LONG_TEMPLATE_ENTRY_END, JetHighlightingColors.STRING_ESCAPE);
keys1.put(JetTokens.LONG_TEMPLATE_ENTRY_START, JetHighlightingColors.STRING_ESCAPE);
keys1.put(JetTokens.SHORT_TEMPLATE_ENTRY_START, JetHighlightingColors.STRING_ESCAPE);
keys.put(JetTokens.ESCAPE_SEQUENCE, JetHighlightingColors.STRING_ESCAPE);
keys1.put(JetTokens.ESCAPE_SEQUENCE, JetHighlightingColors.STRING_ESCAPE);
keys.put(JetTokens.CHARACTER_LITERAL, JetHighlightingColors.STRING);
keys1.put(JetTokens.CHARACTER_LITERAL, JetHighlightingColors.STRING);
keys.put(JetTokens.EOL_COMMENT, JetHighlightingColors.LINE_COMMENT);
keys.put(JetTokens.SHEBANG_COMMENT, JetHighlightingColors.LINE_COMMENT);
keys.put(JetTokens.BLOCK_COMMENT, JetHighlightingColors.BLOCK_COMMENT);
keys.put(JetTokens.DOC_COMMENT, JetHighlightingColors.DOC_COMMENT);
keys1.put(JetTokens.EOL_COMMENT, JetHighlightingColors.LINE_COMMENT);
keys1.put(JetTokens.SHEBANG_COMMENT, JetHighlightingColors.LINE_COMMENT);
keys1.put(JetTokens.BLOCK_COMMENT, JetHighlightingColors.BLOCK_COMMENT);
keys1.put(JetTokens.DOC_COMMENT, JetHighlightingColors.DOC_COMMENT);
fillMap(keys, KDocTokens.CONTENT_TOKENS, JetHighlightingColors.DOC_COMMENT);
keys.put(KDocTokens.TAG_NAME, JetHighlightingColors.KDOC_TAG);
fillMap(keys1, KDocTokens.CONTENT_TOKENS, JetHighlightingColors.DOC_COMMENT);
keys1.put(KDocTokens.TAG_NAME, JetHighlightingColors.KDOC_TAG);
keys2.put(KDocTokens.TAG_NAME, JetHighlightingColors.DOC_COMMENT);
keys.put(TokenType.BAD_CHARACTER, JetHighlightingColors.BAD_CHARACTER);
keys1.put(TokenType.BAD_CHARACTER, JetHighlightingColors.BAD_CHARACTER);
}
}