/*
 * Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 *
 * This file has been automatically generated. Please do not edit it manually.
 * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
 */
package org.dartlang.analysis.server.protocol;

/**
 * An enumeration of the kinds of highlighting that can be applied to files.
 *
 * @coverage dart.server.generated.types
 */
public class HighlightRegionType {

  public static final String ANNOTATION = "ANNOTATION";

  public static final String BUILT_IN = "BUILT_IN";

  public static final String CLASS = "CLASS";

  public static final String COMMENT_BLOCK = "COMMENT_BLOCK";

  public static final String COMMENT_DOCUMENTATION = "COMMENT_DOCUMENTATION";

  public static final String COMMENT_END_OF_LINE = "COMMENT_END_OF_LINE";

  public static final String CONSTRUCTOR = "CONSTRUCTOR";

  public static final String DIRECTIVE = "DIRECTIVE";

  /**
   * Deprecated - no longer sent.
   */
  public static final String DYNAMIC_TYPE = "DYNAMIC_TYPE";

  public static final String DYNAMIC_LOCAL_VARIABLE_DECLARATION = "DYNAMIC_LOCAL_VARIABLE_DECLARATION";

  public static final String DYNAMIC_LOCAL_VARIABLE_REFERENCE = "DYNAMIC_LOCAL_VARIABLE_REFERENCE";

  public static final String DYNAMIC_PARAMETER_DECLARATION = "DYNAMIC_PARAMETER_DECLARATION";

  public static final String DYNAMIC_PARAMETER_REFERENCE = "DYNAMIC_PARAMETER_REFERENCE";

  public static final String ENUM = "ENUM";

  public static final String ENUM_CONSTANT = "ENUM_CONSTANT";

  /**
   * Deprecated - no longer sent.
   */
  public static final String FIELD = "FIELD";

  /**
   * Deprecated - no longer sent.
   */
  public static final String FIELD_STATIC = "FIELD_STATIC";

  /**
   * Deprecated - no longer sent.
   */
  public static final String FUNCTION = "FUNCTION";

  /**
   * Deprecated - no longer sent.
   */
  public static final String FUNCTION_DECLARATION = "FUNCTION_DECLARATION";

  public static final String FUNCTION_TYPE_ALIAS = "FUNCTION_TYPE_ALIAS";

  /**
   * Deprecated - no longer sent.
   */
  public static final String GETTER_DECLARATION = "GETTER_DECLARATION";

  public static final String IDENTIFIER_DEFAULT = "IDENTIFIER_DEFAULT";

  public static final String IMPORT_PREFIX = "IMPORT_PREFIX";

  public static final String INSTANCE_FIELD_DECLARATION = "INSTANCE_FIELD_DECLARATION";

  public static final String INSTANCE_FIELD_REFERENCE = "INSTANCE_FIELD_REFERENCE";

  public static final String INSTANCE_GETTER_DECLARATION = "INSTANCE_GETTER_DECLARATION";

  public static final String INSTANCE_GETTER_REFERENCE = "INSTANCE_GETTER_REFERENCE";

  public static final String INSTANCE_METHOD_DECLARATION = "INSTANCE_METHOD_DECLARATION";

  public static final String INSTANCE_METHOD_REFERENCE = "INSTANCE_METHOD_REFERENCE";

  public static final String INSTANCE_SETTER_DECLARATION = "INSTANCE_SETTER_DECLARATION";

  public static final String INSTANCE_SETTER_REFERENCE = "INSTANCE_SETTER_REFERENCE";

  public static final String INVALID_STRING_ESCAPE = "INVALID_STRING_ESCAPE";

  public static final String KEYWORD = "KEYWORD";

  public static final String LABEL = "LABEL";

  public static final String LIBRARY_NAME = "LIBRARY_NAME";

  public static final String LITERAL_BOOLEAN = "LITERAL_BOOLEAN";

  public static final String LITERAL_DOUBLE = "LITERAL_DOUBLE";

  public static final String LITERAL_INTEGER = "LITERAL_INTEGER";

  public static final String LITERAL_LIST = "LITERAL_LIST";

  public static final String LITERAL_MAP = "LITERAL_MAP";

  public static final String LITERAL_STRING = "LITERAL_STRING";

  public static final String LOCAL_FUNCTION_DECLARATION = "LOCAL_FUNCTION_DECLARATION";

  public static final String LOCAL_FUNCTION_REFERENCE = "LOCAL_FUNCTION_REFERENCE";

  /**
   * Deprecated - no longer sent.
   */
  public static final String LOCAL_VARIABLE = "LOCAL_VARIABLE";

  public static final String LOCAL_VARIABLE_DECLARATION = "LOCAL_VARIABLE_DECLARATION";

  public static final String LOCAL_VARIABLE_REFERENCE = "LOCAL_VARIABLE_REFERENCE";

  /**
   * Deprecated - no longer sent.
   */
  public static final String METHOD = "METHOD";

  /**
   * Deprecated - no longer sent.
   */
  public static final String METHOD_DECLARATION = "METHOD_DECLARATION";

  /**
   * Deprecated - no longer sent.
   */
  public static final String METHOD_DECLARATION_STATIC = "METHOD_DECLARATION_STATIC";

  /**
   * Deprecated - no longer sent.
   */
  public static final String METHOD_STATIC = "METHOD_STATIC";

  /**
   * Deprecated - no longer sent.
   */
  public static final String PARAMETER = "PARAMETER";

  /**
   * Deprecated - no longer sent.
   */
  public static final String SETTER_DECLARATION = "SETTER_DECLARATION";

  /**
   * Deprecated - no longer sent.
   */
  public static final String TOP_LEVEL_VARIABLE = "TOP_LEVEL_VARIABLE";

  public static final String PARAMETER_DECLARATION = "PARAMETER_DECLARATION";

  public static final String PARAMETER_REFERENCE = "PARAMETER_REFERENCE";

  public static final String STATIC_FIELD_DECLARATION = "STATIC_FIELD_DECLARATION";

  public static final String STATIC_GETTER_DECLARATION = "STATIC_GETTER_DECLARATION";

  public static final String STATIC_GETTER_REFERENCE = "STATIC_GETTER_REFERENCE";

  public static final String STATIC_METHOD_DECLARATION = "STATIC_METHOD_DECLARATION";

  public static final String STATIC_METHOD_REFERENCE = "STATIC_METHOD_REFERENCE";

  public static final String STATIC_SETTER_DECLARATION = "STATIC_SETTER_DECLARATION";

  public static final String STATIC_SETTER_REFERENCE = "STATIC_SETTER_REFERENCE";

  public static final String TOP_LEVEL_FUNCTION_DECLARATION = "TOP_LEVEL_FUNCTION_DECLARATION";

  public static final String TOP_LEVEL_FUNCTION_REFERENCE = "TOP_LEVEL_FUNCTION_REFERENCE";

  public static final String TOP_LEVEL_GETTER_DECLARATION = "TOP_LEVEL_GETTER_DECLARATION";

  public static final String TOP_LEVEL_GETTER_REFERENCE = "TOP_LEVEL_GETTER_REFERENCE";

  public static final String TOP_LEVEL_SETTER_DECLARATION = "TOP_LEVEL_SETTER_DECLARATION";

  public static final String TOP_LEVEL_SETTER_REFERENCE = "TOP_LEVEL_SETTER_REFERENCE";

  public static final String TOP_LEVEL_VARIABLE_DECLARATION = "TOP_LEVEL_VARIABLE_DECLARATION";

  public static final String TYPE_NAME_DYNAMIC = "TYPE_NAME_DYNAMIC";

  public static final String TYPE_PARAMETER = "TYPE_PARAMETER";

  public static final String UNRESOLVED_INSTANCE_MEMBER_REFERENCE = "UNRESOLVED_INSTANCE_MEMBER_REFERENCE";

  public static final String VALID_STRING_ESCAPE = "VALID_STRING_ESCAPE";

}
