/*
 * 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 kinds of folding regions.
 *
 * @coverage dart.server.generated.types
 */
public class FoldingKind {

  public static final String ANNOTATIONS = "ANNOTATIONS";

  public static final String CLASS_BODY = "CLASS_BODY";

  public static final String DIRECTIVES = "DIRECTIVES";

  public static final String DOCUMENTATION_COMMENT = "DOCUMENTATION_COMMENT";

  public static final String FILE_HEADER = "FILE_HEADER";

  public static final String FUNCTION_BODY = "FUNCTION_BODY";

  public static final String INVOCATION = "INVOCATION";

  public static final String LITERAL = "LITERAL";

}
