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

  public static final String ANNOTATIONS = "ANNOTATIONS";

  public static final String BLOCK = "BLOCK";

  public static final String CLASS_BODY = "CLASS_BODY";

  public static final String COMMENT = "COMMENT";

  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";

  public static final String PARAMETERS = "PARAMETERS";

}
