/*
 * Copyright (c) 2018, 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 services provided by the analysis domain that are related to a specific
 * list of files.
 *
 * @coverage dart.server.generated.types
 */
public class AnalysisService {

  public static final String CLOSING_LABELS = "CLOSING_LABELS";

  public static final String FOLDING = "FOLDING";

  public static final String HIGHLIGHTS = "HIGHLIGHTS";

  public static final String IMPLEMENTED = "IMPLEMENTED";

  /**
   * This service is not currently implemented and will become a GeneralAnalysisService in a future
   * release.
   */
  public static final String INVALIDATE = "INVALIDATE";

  public static final String NAVIGATION = "NAVIGATION";

  public static final String OCCURRENCES = "OCCURRENCES";

  public static final String OUTLINE = "OUTLINE";

  public static final String OVERRIDES = "OVERRIDES";

}
