id = "flutter" name = "Flutter" homepage = "https://docs.flutter.dev/reference/flutter-cli" description = "Flutter makes it easy and fast to build beautiful apps for mobile and beyond." icon = "SimpleIcons:flutter" executables = ["flutter"] [dotfiles] # packages/flutter_tools/lib/src/base/config.dart _configPath(): on Linux and # macOS an already existing /.flutter_settings wins, otherwise the file is # $XDG_CONFIG_HOME/flutter/settings or /.config/flutter/settings — the # [configHome] base directory, which is the XDG one on macOS too. On every other # platform it is /.flutter_settings, and _userHomePath() reads %APPDATA% # rather than the profile directory on Windows, so that spelling stays literal. # The contents are the JSON map `flutter config` writes. paths = [ "[configHome]/flutter/settings", "~/.flutter_settings", "%APPDATA%/.flutter_settings", ] exclude = [] secret = [] # Loaded when the tool starts and rewritten in full on `flutter config`. side_effect = false # packages/flutter_tools/lib/src/commands/config.dart writes these three keys # from --android-sdk, --android-studio-dir and --jdk-dir; each is an absolute # path to something installed on this machine (the fallbacks come from the # locally detected AndroidStudio, AndroidSdk and Java). build-dir is deliberately # left out: the same file rejects it unless it is relative. The enable- # switches are preferences and stay. The file names carry no extension, so the # parser has to be named. # # android-sdk lands under the user's own home — ~/Library/Android/sdk, # ~/Android/Sdk, %LOCALAPPDATA%\Android\sdk — or wherever they moved it, so it # is one machine's and is kept only to rebuild that one: backup. [[dotfiles.machine_lines]] file = ["[configHome]/flutter/settings", "~/.flutter_settings", "%APPDATA%/.flutter_settings"] format = "json" match = { key_path = ["android-sdk"] } scope = "backup" # The other two are split out because the platform decides them, not the # machine: Android Studio and the JDK it bundles land in /Applications on a # Mac, /opt/android-studio on a distro, C:\Program Files on Windows — the same # path on every box of that kind, so they travel to one. [[dotfiles.machine_lines]] file = ["[configHome]/flutter/settings", "~/.flutter_settings", "%APPDATA%/.flutter_settings"] format = "json" match = { key_path = ["android-studio-dir", "jdk-dir"] } scope = "platform" [commands] format = 1 label = "Flutter" description = "Run, build, create and test Flutter apps. Analyze, pub, emulators and the many tracing and VM-service flags are left out." quality = "ai-draft" base = "fig:flutter" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/flutter.ts" license = "MIT" [[commands.subcommand]] path = ["run"] label = "Run an app" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/flutter.ts" license = "MIT" [[commands.subcommand.field]] id = "device_id" label = "Device" type = "string" option = ["--device-id", "-d"] sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Entry-point file" type = "path" option = ["--target", "-t"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "debug" label = "Debug mode" type = "boolean" option = ["--debug"] sources = ["fig"] [[commands.subcommand.field]] id = "profile" label = "Profile mode" type = "boolean" option = ["--profile"] sources = ["fig"] [[commands.subcommand.field]] id = "release" label = "Release mode" type = "boolean" option = ["--release"] sources = ["fig"] [[commands.subcommand.field]] id = "flavor" label = "Flavor" type = "string" option = ["--flavor"] sources = ["fig"] [[commands.subcommand.field]] id = "dart_define" label = "Dart define (KEY=VALUE)" type = "string" option = ["--dart-define"] multiple = true sources = ["fig"] [[commands.subcommand.field]] id = "no_pub" label = "Skip pub get" type = "boolean" option = ["--no-pub"] sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.subcommand.task]] id = "run-device" label = "Run on a device" fields = ["device_id", "target", "flavor"] required = [] [[commands.subcommand.task]] id = "run-release" label = "Run release build" set = { release = [true] } fields = ["device_id", "target", "release"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["device_id", "target", "debug", "profile"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["release", "flavor", "dart_define", "no_pub", "verbose"] [[commands.subcommand]] path = ["build"] label = "Build an app" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/flutter.ts" license = "MIT" [[commands.subcommand.field]] id = "executable_type" label = "Build type" type = "string" position = 0 suggestions = [{ value = "apk", label = "apk" }, { value = "appbundle", label = "appbundle" }, { value = "ios", label = "ios" }, { value = "ipa", label = "ipa" }, { value = "web", label = "web" }, { value = "aar", label = "aar" }, { value = "bundle", label = "bundle" }, { value = "ios-framework", label = "ios-framework" }] sources = ["fig"] [[commands.subcommand.field]] id = "target" label = "Entry-point file" type = "path" option = ["--target", "-t"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "verbose" label = "Verbose" type = "boolean" option = ["--verbose", "-v"] sources = ["fig"] [[commands.subcommand.task]] id = "build" label = "Build" fields = ["executable_type", "target"] required = ["executable_type"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["executable_type", "target", "verbose"] [[commands.subcommand]] path = ["create"] label = "Create a project" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/flutter.ts" license = "MIT" [[commands.subcommand.field]] id = "project_name" label = "Package name" type = "string" option = ["--project-name"] sources = ["fig"] [[commands.subcommand.field]] id = "org" label = "Organization (reverse domain)" type = "string" option = ["--org"] sources = ["fig"] [[commands.subcommand.field]] id = "template" label = "Template" type = "string" option = ["--template", "-t"] suggestions = [{ value = "app", label = "app" }, { value = "module", label = "module" }, { value = "package", label = "package" }, { value = "plugin", label = "plugin" }] sources = ["fig"] [[commands.subcommand.field]] id = "platforms" label = "Platforms" type = "string" option = ["--platforms"] suggestions = [{ value = "android", label = "android" }, { value = "ios", label = "ios" }, { value = "web", label = "web" }, { value = "macos", label = "macos" }, { value = "linux", label = "linux" }, { value = "windows", label = "windows" }] sources = ["fig"] [[commands.subcommand.field]] id = "description" label = "Description" type = "string" option = ["--description"] sources = ["fig"] [[commands.subcommand.field]] id = "ios_language" label = "iOS language" type = "string" option = ["--ios-language", "-i"] suggestions = [{ value = "swift", label = "swift" }, { value = "objc", label = "objc" }] sources = ["fig"] [[commands.subcommand.field]] id = "android_language" label = "Android language" type = "string" option = ["--android-language", "-a"] suggestions = [{ value = "kotlin", label = "kotlin" }, { value = "java", label = "java" }] sources = ["fig"] [[commands.subcommand.field]] id = "overwrite" label = "Overwrite existing files" type = "boolean" option = ["--overwrite"] effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "no_pub" label = "Skip pub get" type = "boolean" option = ["--no-pub"] sources = ["fig"] [[commands.subcommand.task]] id = "create-app" label = "New app" set = { template = ["app"] } fields = ["project_name", "org", "platforms"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["project_name", "org", "template"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["platforms", "description", "ios_language", "android_language", "overwrite", "no_pub"] [[commands.subcommand]] path = ["test"] label = "Run tests" [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/flutter.ts" license = "MIT" [[commands.subcommand.field]] id = "name" label = "Name regexp" type = "string" option = ["--name"] sources = ["fig"] [[commands.subcommand.field]] id = "plain_name" label = "Name substring" type = "string" option = ["--plain-name"] sources = ["fig"] [[commands.subcommand.field]] id = "coverage" label = "Collect coverage" type = "boolean" option = ["--coverage"] sources = ["fig"] [[commands.subcommand.field]] id = "update_goldens" label = "Update goldens" type = "boolean" option = ["--update-goldens"] effect = "overwrite" sources = ["fig"] [[commands.subcommand.field]] id = "tags" label = "Only tags" type = "string" option = ["--tags", "-t"] sources = ["fig"] [[commands.subcommand.field]] id = "exclude_tags" label = "Exclude tags" type = "string" option = ["--exclude-tags", "-x"] sources = ["fig"] [[commands.subcommand.field]] id = "reporter" label = "Reporter" type = "string" option = ["--reporter", "-r"] suggestions = [{ value = "compact", label = "compact" }, { value = "expanded", label = "expanded" }, { value = "json", label = "json" }] sources = ["fig"] [[commands.subcommand.field]] id = "no_pub" label = "Skip pub get" type = "boolean" option = ["--no-pub"] sources = ["fig"] [[commands.subcommand.task]] id = "coverage" label = "Test with coverage" set = { coverage = [true] } fields = ["name", "coverage"] required = [] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["name", "plain_name", "coverage"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["update_goldens", "tags", "exclude_tags", "reporter", "no_pub"]