/*
 * 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 code completion that users can invoke.
 *
 * @coverage dart.server.generated.types
 */
public class CompletionMode {

  /**
   * Basic code completion invocation type, and the default for this enumeration.
   */
  public static final String BASIC = "BASIC";

  /**
   * Smart code completion, currently not implemented.
   */
  public static final String SMART = "SMART";

}
