#compdef flutter
#autoload

local -a _1st_arguments
_1st_arguments=(
  "analyze":"Analyze the project's Dart code."
  "assemble":"Assemble and build flutter resources."
  "attach":"Attach to a running application."
  "build":"Flutter build commands."
  "channel":"List or switch flutter channels."
  "clean":"Delete the build/ and .dart_tool/ directories."
  "config":"Configure Flutter settings."
  "create":"Create a new Flutter project."
  "devices":"List all connected devices."
  "doctor":"Show information about the installed tooling."
  "drive":"Runs Flutter Driver tests for the current project."
  "emulators":"List, launch and create emulators."
  "format":" Format one or more dart files."
  "help":"Display help information for flutter."
  "install":"Install a Flutter app on an attached device."
  "logs":"Show log output for running Flutter apps."
  "make-host-app-editable":"Moves host apps from generated directories to non-generated directories so that they can be edited by developers."
  "precache":"Populates the Flutter tool's cache of binary artifacts."
  "pub":"Commands for managing Flutter packages."
  "run":"Run your Flutter app on an attached device."
  "screenshot":"Take a screenshot from a connected device."
  "test":"Run Flutter unit tests for the current project."
  "upgrade":"Upgrade your copy of Flutter."
  "version":"List or switch flutter versions."
)

_arguments -C '*:: :->subcmds'

if (( CURRENT == 1 )); then
  _describe -t commands "flutter command" _1st_arguments
  return
fi