package com.jetbrains.lang.dart.highlight;
import com.intellij.openapi.editor.colors.TextAttributesKey;
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
import com.intellij.openapi.options.colors.AttributesDescriptor;
import com.intellij.openapi.options.colors.ColorDescriptor;
import com.intellij.openapi.options.colors.ColorSettingsPage;
import com.jetbrains.lang.dart.DartBundle;
import com.jetbrains.lang.dart.DartFileType;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import java.util.HashMap;
import java.util.Map;
import static com.jetbrains.lang.dart.highlight.DartSyntaxHighlighterColors.*;
public class DartColorsAndFontsPage implements ColorSettingsPage {
private static final AttributesDescriptor[] ATTRS;
private static final Map<String, TextAttributesKey> PREVIEW_TAGS = new HashMap<>();
private static final String PREVIEW_TEXT =
"<DART_KEYWORD>library</DART_KEYWORD> <DART_LIBRARY_NAME>libraryName</DART_LIBRARY_NAME>;\n" +
"<DART_KEYWORD>import</DART_KEYWORD> \"dart:html\" <DART_KEYWORD>as</DART_KEYWORD> <DART_IMPORT_PREFIX>html</DART_IMPORT_PREFIX>;\n" +
"// Comment. <ERROR>Error.</ERROR> <WARNING>Warning.</WARNING> <HINT>Hint.</HINT>\n" +
"<DART_TYPE_NAME_DYNAMIC>dynamic</DART_TYPE_NAME_DYNAMIC> <DART_TOP_LEVEL_VARIABLE_DECLARATION>topLevelVariable</DART_TOP_LEVEL_VARIABLE_DECLARATION> = \"Escape sequences: <DART_VALID_STRING_ESCAPE>\\n</DART_VALID_STRING_ESCAPE> <DART_VALID_STRING_ESCAPE>\\xFF</DART_VALID_STRING_ESCAPE> <DART_VALID_STRING_ESCAPE>\\u1234</DART_VALID_STRING_ESCAPE> <DART_VALID_STRING_ESCAPE>\\u{2F}</DART_VALID_STRING_ESCAPE>\";\n" +
"<DART_KEYWORD>get</DART_KEYWORD> <DART_TOP_LEVEL_GETTER_DECLARATION>topLevelGetter</DART_TOP_LEVEL_GETTER_DECLARATION> { <DART_KEYWORD>return</DART_KEYWORD> <DART_TOP_LEVEL_GETTER_REFERENCE>topLevelVariable</DART_TOP_LEVEL_GETTER_REFERENCE>; }\n" +
"<DART_KEYWORD>set</DART_KEYWORD> <DART_TOP_LEVEL_SETTER_DECLARATION>topLevelSetter</DART_TOP_LEVEL_SETTER_DECLARATION>(<DART_CLASS>bool</DART_CLASS> <DART_PARAMETER_DECLARATION>parameter</DART_PARAMETER_DECLARATION>) { <DART_TOP_LEVEL_FUNCTION_REFERENCE>print</DART_TOP_LEVEL_FUNCTION_REFERENCE>(<DART_PARAMETER_REFERENCE>parameter</DART_PARAMETER_REFERENCE>); }\n" +
"<DART_KEYWORD>void</DART_KEYWORD> <DART_TOP_LEVEL_FUNCTION_DECLARATION>topLevelFunction</DART_TOP_LEVEL_FUNCTION_DECLARATION>(<DART_DYNAMIC_PARAMETER_DECLARATION>dynamicParameter</DART_DYNAMIC_PARAMETER_DECLARATION>) {\n" +
" <DART_LOCAL_FUNCTION_DECLARATION>localFunction</DART_LOCAL_FUNCTION_DECLARATION>() {}\n" +
" <DART_CLASS>num</DART_CLASS> <DART_LOCAL_VARIABLE_DECLARATION>localVar</DART_LOCAL_VARIABLE_DECLARATION> = \"Invalid escape sequences: <DART_INVALID_STRING_ESCAPE>\\xZZ</DART_INVALID_STRING_ESCAPE> <DART_INVALID_STRING_ESCAPE>\\uXYZZ</DART_INVALID_STRING_ESCAPE> <DART_INVALID_STRING_ESCAPE>\\u{XYZ}</DART_INVALID_STRING_ESCAPE>\";\n" +
" <DART_KEYWORD>var</DART_KEYWORD> <DART_DYNAMIC_LOCAL_VARIABLE_DECLARATION>dynamicLocalVar</DART_DYNAMIC_LOCAL_VARIABLE_DECLARATION> = <DART_DYNAMIC_PARAMETER_REFERENCE>dynamicParameter</DART_DYNAMIC_PARAMETER_REFERENCE> + <DART_LOCAL_VARIABLE_REFERENCE>localVar</DART_LOCAL_VARIABLE_REFERENCE> + <DART_LOCAL_FUNCTION_REFERENCE>localFunction</DART_LOCAL_FUNCTION_REFERENCE>();\n" +
" <DART_TOP_LEVEL_SETTER_REFERENCE>topLevelSetter</DART_TOP_LEVEL_SETTER_REFERENCE> = <DART_DYNAMIC_LOCAL_VARIABLE_REFERENCE>dynamicLocalVar</DART_DYNAMIC_LOCAL_VARIABLE_REFERENCE> + <DART_TOP_LEVEL_GETTER_REFERENCE>topLevelGetter</DART_TOP_LEVEL_GETTER_REFERENCE> + <DART_TOP_LEVEL_FUNCTION_REFERENCE>topLevelFunction</DART_TOP_LEVEL_FUNCTION_REFERENCE>(<DART_KEYWORD>null</DART_KEYWORD>);\n" +
" <DART_LABEL>label</DART_LABEL><DART_COLON>:</DART_COLON> <DART_KEYWORD>while</DART_KEYWORD> (<DART_KEYWORD>true</DART_KEYWORD>) { <DART_KEYWORD>if</DART_KEYWORD> (<DART_IDENTIFIER>identifier</DART_IDENTIFIER>) <DART_KEYWORD>break</DART_KEYWORD> <DART_LABEL>label</DART_LABEL>; }\n" +
"}\n" +
"/* block comment */\n" +
"<DART_KEYWORD>class</DART_KEYWORD> <DART_CLASS>Foo</DART_CLASS><<DART_TYPE_PARAMETER>K</DART_TYPE_PARAMETER>, <DART_TYPE_PARAMETER>V</DART_TYPE_PARAMETER>> {\n" +
" <DART_KEYWORD>static</DART_KEYWORD> <DART_KEYWORD>var</DART_KEYWORD> <DART_STATIC_FIELD_DECLARATION>staticField</DART_STATIC_FIELD_DECLARATION> = <DART_STATIC_GETTER_REFERENCE>staticGetter</DART_STATIC_GETTER_REFERENCE>;\n" +
" <DART_CLASS>List</DART_CLASS> <DART_INSTANCE_FIELD_DECLARATION>instanceField</DART_INSTANCE_FIELD_DECLARATION> = [566];\n" +
" <DART_ANNOTATION>@<DART_TOP_LEVEL_GETTER_REFERENCE>deprecated</DART_TOP_LEVEL_GETTER_REFERENCE></DART_ANNOTATION> <DART_CLASS>Foo</DART_CLASS>.<DART_CONSTRUCTOR>constructor</DART_CONSTRUCTOR>(<DART_KEYWORD>this</DART_KEYWORD>.<DART_INSTANCE_FIELD_REFERENCE>instanceField</DART_INSTANCE_FIELD_REFERENCE>) { <DART_INSTANCE_METHOD_REFERENCE>instanceMethod</DART_INSTANCE_METHOD_REFERENCE>(); }\n" +
" <DART_INSTANCE_METHOD_DECLARATION>instanceMethod</DART_INSTANCE_METHOD_DECLARATION>() { <DART_TOP_LEVEL_FUNCTION_REFERENCE>print</DART_TOP_LEVEL_FUNCTION_REFERENCE>(<DART_INSTANCE_GETTER_REFERENCE>instanceField</DART_INSTANCE_GETTER_REFERENCE> + <DART_INSTANCE_GETTER_REFERENCE>instanceGetter</DART_INSTANCE_GETTER_REFERENCE>); }\n" +
" <DART_KEYWORD>get</DART_KEYWORD> <DART_INSTANCE_GETTER_DECLARATION>instanceGetter</DART_INSTANCE_GETTER_DECLARATION> { <DART_INSTANCE_SETTER_REFERENCE>instanceSetter</DART_INSTANCE_SETTER_REFERENCE> = <DART_KEYWORD>true</DART_KEYWORD>; }\n" +
" <DART_KEYWORD>set</DART_KEYWORD> <DART_INSTANCE_SETTER_DECLARATION>instanceSetter</DART_INSTANCE_SETTER_DECLARATION>(<DART_DYNAMIC_PARAMETER_DECLARATION>_</DART_DYNAMIC_PARAMETER_DECLARATION>) { <DART_STATIC_SETTER_REFERENCE>staticSetter</DART_STATIC_SETTER_REFERENCE> = <DART_KEYWORD>null</DART_KEYWORD>; }\n" +
" <DART_KEYWORD>static</DART_KEYWORD> <DART_STATIC_METHOD_DECLARATION>staticMethod</DART_STATIC_METHOD_DECLARATION>() <DART_FAT_ARROW>=></DART_FAT_ARROW> <DART_STATIC_GETTER_REFERENCE>staticField</DART_STATIC_GETTER_REFERENCE>.<DART_UNRESOLVED_INSTANCE_MEMBER_REFERENCE>unresolved</DART_UNRESOLVED_INSTANCE_MEMBER_REFERENCE>();\n" +
" <DART_KEYWORD>static</DART_KEYWORD> <DART_KEYWORD>get</DART_KEYWORD> <DART_STATIC_GETTER_DECLARATION>staticGetter</DART_STATIC_GETTER_DECLARATION> { <DART_KEYWORD>return</DART_KEYWORD> <DART_STATIC_METHOD_REFERENCE>staticMethod</DART_STATIC_METHOD_REFERENCE>(); }\n" +
" <DART_KEYWORD>static</DART_KEYWORD> <DART_KEYWORD>set</DART_KEYWORD> <DART_STATIC_SETTER_DECLARATION>staticSetter</DART_STATIC_SETTER_DECLARATION>(<DART_CLASS>Foo</DART_CLASS> <DART_PARAMETER_DECLARATION>param</DART_PARAMETER_DECLARATION>) { <DART_SYMBOL_LITERAL>#Enum.EnumConstant</DART_SYMBOL_LITERAL>; }\n" +
"}\n" +
"/// documentation for [<DART_ENUM>Enum</DART_ENUM>]\n" +
"<DART_KEYWORD>enum</DART_KEYWORD> <DART_ENUM>Enum</DART_ENUM> { <DART_ENUM_CONSTANT>EnumConstant</DART_ENUM_CONSTANT> }\n" +
"<DART_KEYWORD>typedef</DART_KEYWORD> <DART_CLASS>int</DART_CLASS> <DART_FUNCTION_TYPE_ALIAS>FunctionTypeAlias</DART_FUNCTION_TYPE_ALIAS>(<DART_DYNAMIC_PARAMETER_DECLARATION>x</DART_DYNAMIC_PARAMETER_DECLARATION>, <DART_DYNAMIC_PARAMETER_DECLARATION>y</DART_DYNAMIC_PARAMETER_DECLARATION>); ```";
static {
PREVIEW_TAGS.put("ERROR", ERROR);
PREVIEW_TAGS.put("WARNING", WARNING);
PREVIEW_TAGS.put("HINT", HINT);
PREVIEW_TAGS.put("DART_ANNOTATION", ANNOTATION);
PREVIEW_TAGS.put("DART_CLASS", CLASS);
PREVIEW_TAGS.put("DART_CONSTRUCTOR", CONSTRUCTOR);
PREVIEW_TAGS.put("DART_DYNAMIC_LOCAL_VARIABLE_DECLARATION", DYNAMIC_LOCAL_VARIABLE_DECLARATION);
PREVIEW_TAGS.put("DART_DYNAMIC_LOCAL_VARIABLE_REFERENCE", DYNAMIC_LOCAL_VARIABLE_REFERENCE);
PREVIEW_TAGS.put("DART_DYNAMIC_PARAMETER_DECLARATION", DYNAMIC_PARAMETER_DECLARATION);
PREVIEW_TAGS.put("DART_DYNAMIC_PARAMETER_REFERENCE", DYNAMIC_PARAMETER_REFERENCE);
PREVIEW_TAGS.put("DART_ENUM", ENUM);
PREVIEW_TAGS.put("DART_ENUM_CONSTANT", ENUM_CONSTANT);
PREVIEW_TAGS.put("DART_FUNCTION_TYPE_ALIAS", FUNCTION_TYPE_ALIAS);
PREVIEW_TAGS.put("DART_IDENTIFIER", IDENTIFIER);
PREVIEW_TAGS.put("DART_INSTANCE_FIELD_DECLARATION", INSTANCE_FIELD_DECLARATION);
PREVIEW_TAGS.put("DART_INSTANCE_FIELD_REFERENCE", INSTANCE_FIELD_REFERENCE);
PREVIEW_TAGS.put("DART_INSTANCE_GETTER_DECLARATION", INSTANCE_GETTER_DECLARATION);
PREVIEW_TAGS.put("DART_INSTANCE_GETTER_REFERENCE", INSTANCE_GETTER_REFERENCE);
PREVIEW_TAGS.put("DART_INSTANCE_METHOD_DECLARATION", INSTANCE_METHOD_DECLARATION);
PREVIEW_TAGS.put("DART_INSTANCE_METHOD_REFERENCE", INSTANCE_METHOD_REFERENCE);
PREVIEW_TAGS.put("DART_INSTANCE_SETTER_DECLARATION", INSTANCE_SETTER_DECLARATION);
PREVIEW_TAGS.put("DART_INSTANCE_SETTER_REFERENCE", INSTANCE_SETTER_REFERENCE);
PREVIEW_TAGS.put("DART_IMPORT_PREFIX", IMPORT_PREFIX);
PREVIEW_TAGS.put("DART_KEYWORD", KEYWORD);
PREVIEW_TAGS.put("DART_LABEL", LABEL);
PREVIEW_TAGS.put("DART_LIBRARY_NAME", LIBRARY_NAME);
PREVIEW_TAGS.put("DART_LOCAL_FUNCTION_DECLARATION", LOCAL_FUNCTION_DECLARATION);
PREVIEW_TAGS.put("DART_LOCAL_FUNCTION_REFERENCE", LOCAL_FUNCTION_REFERENCE);
PREVIEW_TAGS.put("DART_LOCAL_VARIABLE_DECLARATION", LOCAL_VARIABLE_DECLARATION);
PREVIEW_TAGS.put("DART_LOCAL_VARIABLE_REFERENCE", LOCAL_VARIABLE_REFERENCE);
PREVIEW_TAGS.put("DART_PARAMETER_DECLARATION", PARAMETER_DECLARATION);
PREVIEW_TAGS.put("DART_PARAMETER_REFERENCE", PARAMETER_REFERENCE);
PREVIEW_TAGS.put("DART_STATIC_FIELD_DECLARATION", STATIC_FIELD_DECLARATION);
PREVIEW_TAGS.put("DART_STATIC_GETTER_DECLARATION", STATIC_GETTER_DECLARATION);
PREVIEW_TAGS.put("DART_STATIC_GETTER_REFERENCE", STATIC_GETTER_REFERENCE);
PREVIEW_TAGS.put("DART_STATIC_METHOD_DECLARATION", STATIC_METHOD_DECLARATION);
PREVIEW_TAGS.put("DART_STATIC_METHOD_REFERENCE", STATIC_METHOD_REFERENCE);
PREVIEW_TAGS.put("DART_STATIC_SETTER_DECLARATION", STATIC_SETTER_DECLARATION);
PREVIEW_TAGS.put("DART_STATIC_SETTER_REFERENCE", STATIC_SETTER_REFERENCE);
PREVIEW_TAGS.put("DART_TOP_LEVEL_FUNCTION_DECLARATION", TOP_LEVEL_FUNCTION_DECLARATION);
PREVIEW_TAGS.put("DART_TOP_LEVEL_FUNCTION_REFERENCE", TOP_LEVEL_FUNCTION_REFERENCE);
PREVIEW_TAGS.put("DART_TOP_LEVEL_GETTER_DECLARATION", TOP_LEVEL_GETTER_DECLARATION);
PREVIEW_TAGS.put("DART_TOP_LEVEL_GETTER_REFERENCE", TOP_LEVEL_GETTER_REFERENCE);
PREVIEW_TAGS.put("DART_TOP_LEVEL_SETTER_DECLARATION", TOP_LEVEL_SETTER_DECLARATION);
PREVIEW_TAGS.put("DART_TOP_LEVEL_SETTER_REFERENCE", TOP_LEVEL_SETTER_REFERENCE);
PREVIEW_TAGS.put("DART_TOP_LEVEL_VARIABLE_DECLARATION", TOP_LEVEL_VARIABLE_DECLARATION);
PREVIEW_TAGS.put("DART_TYPE_NAME_DYNAMIC", TYPE_NAME_DYNAMIC);
PREVIEW_TAGS.put("DART_TYPE_PARAMETER", TYPE_PARAMETER);
PREVIEW_TAGS.put("DART_UNRESOLVED_INSTANCE_MEMBER_REFERENCE", UNRESOLVED_INSTANCE_MEMBER_REFERENCE);
PREVIEW_TAGS.put("DART_BLOCK_COMMENT", BLOCK_COMMENT);
PREVIEW_TAGS.put("DART_DOC_COMMENT", DOC_COMMENT);
PREVIEW_TAGS.put("DART_LINE_COMMENT", LINE_COMMENT);
PREVIEW_TAGS.put("DART_NUMBER", NUMBER);
PREVIEW_TAGS.put("DART_STRING", STRING);
PREVIEW_TAGS.put("DART_VALID_STRING_ESCAPE", VALID_STRING_ESCAPE);
PREVIEW_TAGS.put("DART_INVALID_STRING_ESCAPE", INVALID_STRING_ESCAPE);
PREVIEW_TAGS.put("DART_OPERATION_SIGN", OPERATION_SIGN);
PREVIEW_TAGS.put("DART_PARENTH", PARENTHS);
PREVIEW_TAGS.put("DART_BRACKETS", BRACKETS);
PREVIEW_TAGS.put("DART_BRACES", BRACES);
PREVIEW_TAGS.put("DART_COMMA", COMMA);
PREVIEW_TAGS.put("DART_DOT", DOT);
PREVIEW_TAGS.put("DART_SEMICOLON", SEMICOLON);
PREVIEW_TAGS.put("DART_COLON", COLON);
PREVIEW_TAGS.put("DART_FAT_ARROW", FAT_ARROW);
PREVIEW_TAGS.put("DART_BAD_CHARACTER", BAD_CHARACTER);
PREVIEW_TAGS.put("DART_SYMBOL_LITERAL", SYMBOL_LITERAL);
ATTRS = new AttributesDescriptor[]{
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.error"), ERROR),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.warning"), WARNING),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.hint"), HINT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.block.comment"), BLOCK_COMMENT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.doc.comment"), DOC_COMMENT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.line.comment"), LINE_COMMENT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.number"), NUMBER),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.string"), STRING),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.valid.string.escape"), VALID_STRING_ESCAPE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.invalid.string.escape"), INVALID_STRING_ESCAPE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.operator"), OPERATION_SIGN),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.parenths"), PARENTHS),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.brackets"), BRACKETS),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.braces"), BRACES),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.comma"), COMMA),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.dot"), DOT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.semicolon"), SEMICOLON),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.colon"), COLON),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.fat.arrow"), FAT_ARROW),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.bad.character"), BAD_CHARACTER),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.symbol.literal"), SYMBOL_LITERAL),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.annotation"), ANNOTATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.class"), CLASS),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.constructor"), CONSTRUCTOR),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.dynamic.local.variable.declaration"),
DYNAMIC_LOCAL_VARIABLE_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.dynamic.local.variable.reference"),
DYNAMIC_LOCAL_VARIABLE_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.dynamic.parameter.declaration"),
DYNAMIC_PARAMETER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.dynamic.parameter.reference"),
DYNAMIC_PARAMETER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.enum"), ENUM),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.enum.constant"), ENUM_CONSTANT),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.function.type.alias"), FUNCTION_TYPE_ALIAS),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.identifier"), IDENTIFIER),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.field.declaration"),
INSTANCE_FIELD_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.field.reference"), INSTANCE_FIELD_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.getter.declaration"),
INSTANCE_GETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.getter.reference"), INSTANCE_GETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.method.declaration"),
INSTANCE_METHOD_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.method.reference"), INSTANCE_METHOD_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.setter.declaration"),
INSTANCE_SETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.instance.setter.reference"), INSTANCE_SETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.import.prefix"), IMPORT_PREFIX),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.keyword"), KEYWORD),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.label"), LABEL),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.library.name"), LIBRARY_NAME),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.local.function.declaration"),
LOCAL_FUNCTION_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.local.function.reference"), LOCAL_FUNCTION_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.local.variable.declaration"),
LOCAL_VARIABLE_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.local.variable.reference"), LOCAL_VARIABLE_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.parameter.declaration"), PARAMETER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.parameter.reference"), PARAMETER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.field.declaration"), STATIC_FIELD_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.getter.declaration"), STATIC_GETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.getter.reference"), STATIC_GETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.method.declaration"), STATIC_METHOD_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.method.reference"), STATIC_METHOD_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.setter.declaration"), STATIC_SETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.static.setter.reference"), STATIC_SETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.function.declaration"),
TOP_LEVEL_FUNCTION_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.function.reference"),
TOP_LEVEL_FUNCTION_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.getter.declaration"),
TOP_LEVEL_GETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.getter.reference"),
TOP_LEVEL_GETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.setter.declaration"),
TOP_LEVEL_SETTER_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.setter.reference"),
TOP_LEVEL_SETTER_REFERENCE),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.top.level.variable.declaration"),
TOP_LEVEL_VARIABLE_DECLARATION),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.type.name.dynamic"), TYPE_NAME_DYNAMIC),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.type.parameter"), TYPE_PARAMETER),
new AttributesDescriptor(DartBundle.message("dart.color.settings.description.unresolved.instance.member.reference"),
UNRESOLVED_INSTANCE_MEMBER_REFERENCE),
};
}
@NotNull
public String getDisplayName() {
return DartBundle.message("dart.title");
}
public Icon getIcon() {
return DartFileType.INSTANCE.getIcon();
}
@NotNull
public AttributesDescriptor[] getAttributeDescriptors() {
return ATTRS;
}
@NotNull
public ColorDescriptor[] getColorDescriptors() {
return ColorDescriptor.EMPTY_ARRAY;
}
@NotNull
public SyntaxHighlighter getHighlighter() {
return new DartSyntaxHighlighter();
}
@NotNull
public String getDemoText() {
return PREVIEW_TEXT;
}
public Map<String, TextAttributesKey> getAdditionalHighlightingTagToDescriptorMap() {
return PREVIEW_TAGS;
}
}