dartSpec top-level property

FigSpec dartSpec
final

Completion spec for dart CLI

Implementation

final FigSpec dartSpec = FigSpec(
    name: 'dart',
    description: 'A command-line utility for Dart development',
    options: [
      ...globalOptions,
      Option(name: ['-v', '--verbose'], description: 'Print verbose output'),
      Option(name: '--version', description: 'Current Dart version'),
      Option(name: '--enable-analytics', description: 'Enables analytics'),
      Option(name: '--disable-analytics', description: 'Disables analytics')
    ],
    subcommands: [
      Subcommand(
          name: 'analyze',
          description: 'Analyze Dart code in a directory',
          options: [
            ...globalOptions,
            Option(
                name: '--fatal-infos',
                description: 'Treat info level issues as fatal'),
            Option(
                name: '--fatal-warnings',
                description:
                    'Treat warning level issues as fatal (defaults to on)',
                exclusiveOn: ['--no-fatal-warnings']),
            Option(
                name: '--no-fatal-warnings',
                description:
                    'Do not treat warning level issues as fatal (defaults to on)',
                exclusiveOn: ['--fatal-warnings'])
          ],
          args: [
            Arg(
                name: 'directory',
                description: 'Dart project directory to analyze',
                template: 'folders')
          ]),
      Subcommand(
          name: 'compile',
          description: 'Compile Dart to various formats',
          options: [
            ...globalOptions
          ],
          subcommands: [
            Subcommand(
                name: 'aot-snapshot',
                description: 'Compile Dart to an AOT snapshot',
                args: dartEntryPoint,
                options: [...globalOptions, ...compileOptions, ...aotOptions]),
            Subcommand(
                name: 'exe',
                description: 'Compile Dart to a self-contained executable',
                args: dartEntryPoint,
                options: [...globalOptions, ...compileOptions, ...aotOptions]),
            Subcommand(
                name: 'jit-snapshot',
                description: 'Compile Dart to a JIT snapshot',
                args: dartEntryPoint,
                options: [...globalOptions, ...compileOptions]),
            Subcommand(
                name: 'js',
                description: 'Compile Dart to JavaScript',
                args: dartEntryPoint,
                options: [
                  ...globalOptions,
                  ...compileOptions,
                  Option(
                      name: ['-m', '--minified'],
                      description: 'Generate minified output'),
                  define
                ]),
            Subcommand(
                name: 'kernel',
                description: 'Compile Dart to a kernel snapshot',
                args: dartEntryPoint,
                options: [...globalOptions, ...compileOptions])
          ]),
      Subcommand(
          name: 'create',
          description: 'Create a new Dart project',
          options: [
            ...globalOptions,
            Option(
                name: ['-t', '--template'],
                description: 'The project template to use',
                args: [
                  Arg(
                      name: 'template-type',
                      defaultValue: 'console-simple',
                      suggestions: [
                        FigSuggestion(
                            name: 'console',
                            description: 'A simple command-line application'),
                        FigSuggestion(
                            name: 'package',
                            description:
                                'A starting point for Dart libraries or applications'),
                        FigSuggestion(
                            name: 'server-shelf',
                            description:
                                'A web server built using package:shelf'),
                        FigSuggestion(
                            name: 'web',
                            description:
                                'A web app that uses only core Dart libraries')
                      ])
                ]),
            Option(
                name: '--pub',
                description:
                    'Run \'pub get\' after the project has been created. Default to on',
                exclusiveOn: ['--no-pub']),
            Option(
                name: '--no-pub',
                description:
                    'Do not run \'pub get\' after the project has been created. Default to on',
                exclusiveOn: ['--pub']),
            Option(
                name: '--force',
                description:
                    'Force project generation, even if the target directory already exists')
          ]),
      Subcommand(
          name: 'fix',
          description: 'Apply automated fixes to Dart source code',
          options: [
            ...globalOptions,
            Option(name: [
              '-n',
              '--dry-run'
            ], description: 'Preview the proposed changes but make no changes'),
            Option(name: '--apply', description: 'Apply the proposed changes')
          ]),
      Subcommand(
          name: 'format',
          description: 'Idiomatically format Dart source code',
          options: [
            ...globalOptions,
            Option(
                name: ['-v', '--verbose'],
                description: 'Show all options and flags with --help'),
            Option(
                name: ['-o', '--output'],
                description: 'Set where to write formatted output',
                args: [
                  Arg(
                      name: 'json',
                      description: 'Print code and selection as JSON'),
                  Arg(name: 'none', description: 'Discard output'),
                  Arg(name: 'show', description: 'Print code to terminal'),
                  Arg(
                      name: 'write',
                      description: 'Overwrite formatted files on disk'),
                  Arg(
                      name: '--show',
                      description: 'Set which filenames to print',
                      suggestions: [
                        FigSuggestion(
                            name: 'all',
                            description: 'All visited files and directories'),
                        FigSuggestion(
                            name: 'changed',
                            description:
                                'Only the names of files whose formatting is changed'),
                        FigSuggestion(
                            name: 'none',
                            description: 'No file names or directories')
                      ]),
                  Arg(
                      name: '--summary',
                      description:
                          'Show the specified summary after formatting',
                      suggestions: [
                        FigSuggestion(
                            name: 'line', description: 'Single-line summary'),
                        FigSuggestion(name: 'none', description: 'No summary'),
                        FigSuggestion(
                            name: 'profile',
                            description: 'How long it took to format each file')
                      ])
                ]),
            Option(
                name: '--set-exit-if-changed',
                description:
                    'Return exit code 1 if there are any formatting changes'),
            Option(name: '--fix', description: 'Apply all style fixes'),
            Option(
                name: '--fix-doc-comments',
                description: 'Use triple slash for documentation comments'),
            Option(
                name: '--fix-function-typedefs',
                description: 'Use new syntax for function type typedefs'),
            Option(
                name: '--fix-named-default-separator',
                description:
                    'Use \'=\' as the separator before named parameter default values'),
            Option(
                name: '--fix-optional-const',
                description:
                    'Remove \'const\' keyword inside constant context'),
            Option(
                name: '--fix-optional-new',
                description: 'Remove \'new\' keyword'),
            Option(
                name: '--fix-single-cascade-statements',
                description:
                    'Remove unnecessary single cascades from expression statements'),
            Option(
                name: ['-l', '--line-length'],
                description: 'Wrap lines longer than this. Defaults to 80',
                args: [
                  Arg(
                      name: 'line-length',
                      description: 'Line length to wrap',
                      suggestions: [
                        FigSuggestion(name: '80'),
                        FigSuggestion(name: '120')
                      ])
                ]),
            Option(
                name: ['-i', '--indent'],
                description: 'Add this many spaces of leading indentation',
                args: [Arg(name: 'number-of-spaces')]),
            Option(
                name: '--follow-links',
                description:
                    'Follow links to files and directories. If unset, links will be ignored'),
            Option(name: '--version', description: 'Show dart_style version'),
            Option(
                name: '--selection',
                description:
                    'Track selection (given as \'start:length\') through formatting'),
            Option(
                name: '--stdin-name',
                description:
                    'Use this path in error messages when input is read from stdin. (defaults to \'stdin\')',
                args: [Arg(name: 'name')])
          ],
          args: [
            Arg(
                name: 'files-or-directory',
                description: 'The files or directories to format',
                template: ['filepaths', 'folders'])
          ]),
      Subcommand(
          name: 'migrate',
          description: 'Perform null safety migration on a project',
          options: [
            ...globalOptions,
            Option(
                name: ['-v', '--verbose'],
                description: 'Show additional command output'),
            Option(
                name: '--apply-changes',
                description:
                    'Apply the proposed null safety changes to the files on disk'),
            Option(
                name: '--ignore-errors',
                description:
                    'Attempt to perform null safety analysis even if the project has analysis errors'),
            Option(
                name: '--skip-import-check',
                description:
                    'Go ahead with migration even if some imported files have not yet been migrated'),
            Option(
                name: '--web-preview',
                description:
                    'Show and interactive preview of the proposed null safety changes in a browser window. (defaults to on)',
                exclusiveOn: ['--no-web-preview']),
            Option(
                name: '--no-web-preview',
                description:
                    'Do not show and interactive preview of the proposed null safety changes in a browser window. (defaults to off)',
                exclusiveOn: ['--web-preview']),
            Option(
                name: '--preview-hostname',
                description:
                    'Run the preview server on the specified hostname. If not specified, \'localhost\' is used. Use \'any\' to specify IPv6.any or IPv4.any. (defaults to the \'localhost\')',
                args: [Arg(name: 'host')]),
            Option(
                name: '--preview-port',
                description:
                    'Run the preview server on the specified port. If not specified, dynamically allocate a port',
                args: [Arg(name: 'port')]),
            Option(
                name: '--summary',
                description:
                    'Output a machine-readable summary of migration changes',
                args: [Arg(name: 'path', template: 'filepaths')]),
            Option(
                name: '--ignore-exceptions',
                description:
                    'Attempt to perform null safety analysis even if exceptions occur'),
            Option(
                name: '--sdk-path',
                description: 'The path to the Dart SDK',
                args: [Arg(name: 'sdk-path')])
          ]),
      Subcommand(name: 'pub', description: 'Work with packages', options: [
        ...globalOptions,
        Option(
            name: '--trace',
            description: 'Print debugging information when an error occurs',
            exclusiveOn: ['--no-trace']),
        Option(
            name: '--no-trace',
            description:
                'Do not print debugging information when an error occurs',
            exclusiveOn: ['--trace']),
        Option(
            name: ['-v', '--verbose'],
            description: 'Shortcut for \'--verbose=all')
      ], subcommands: [
        Subcommand(
            name: 'add',
            description: 'Add a dependency to pubspec.yaml',
            options: [
              ...globalOptions,
              Option(
                  name: ['-d', '--dev'],
                  description:
                      'Adds package to the development dependencies instead'),
              Option(name: '--git-url', description: 'Git URL of the package'),
              Option(
                  name: '--git-ref',
                  description: 'Git branch or commit to be retrieved'),
              Option(
                  name: '--git-path',
                  description: 'Path of git package in repository'),
              Option(
                  name: '--hosted-url',
                  description: 'URL of package host server'),
              Option(name: '--path', description: 'Local path'),
              Option(name: '--sdk', description: 'SDK source for package'),
              offline,
              noOffline,
              dryRun,
              precompile,
              noPrecompile
            ],
            args: [
              Arg(name: 'package', description: 'Dart pub package name')
            ]),
        Subcommand(
            name: 'cache',
            description: 'Work with the Pub system cache',
            options: [
              ...globalOptions
            ],
            subcommands: [
              Subcommand(
                  name: 'add',
                  description: 'Install a package',
                  options: [
                    ...globalOptions,
                    Option(
                        name: '--all',
                        description: 'Install all matching versions'),
                    Option(
                        name: ['-v', '--version'],
                        description: 'Version constraint')
                  ],
                  args: [
                    Arg(name: 'package')
                  ]),
              Subcommand(
                  name: 'repair',
                  description: 'Reinstall a cached package',
                  options: globalOptions)
            ]),
        Subcommand(
            name: 'deps',
            description: 'Print package dependencies',
            options: [
              ...globalOptions,
              Option(
                  name: ['-s', '--style'],
                  description: 'How output should be displayed',
                  args: [
                    Arg(name: 'style', suggestions: [
                      FigSuggestion(name: 'compact'),
                      FigSuggestion(name: 'tree'),
                      FigSuggestion(name: 'list')
                    ])
                  ]),
              Option(
                  name: '--dev',
                  description: 'Include dev dependencies. (defaults to on)',
                  exclusiveOn: ['--no-dev']),
              Option(
                  name: '--no-dev',
                  description:
                      'Do not include dev dependencies. (defaults to off)',
                  exclusiveOn: ['--dev']),
              Option(
                  name: '--executables',
                  description: 'List all available executables')
            ]),
        Subcommand(
            name: 'downgrade',
            description: 'Downgrade packages in a Flutter project',
            options: [...globalOptions, offline, noOffline, dryRun]),
        Subcommand(
            name: 'get',
            description: 'Get packages in a Flutter project',
            options: [
              ...globalOptions,
              offline,
              noOffline,
              dryRun,
              precompile,
              noPrecompile
            ]),
        Subcommand(
            name: 'global',
            description: 'Work with Pub global packages',
            options: globalOptions,
            subcommands: [
              Subcommand(
                  name: 'activate',
                  description:
                      'Make a package\'s executables globally available',
                  options: [
                    ...globalOptions,
                    Option(
                        name: ['-s', '--source'],
                        description: 'The source used to find the package',
                        args: [
                          Arg(name: 'source', suggestions: [
                            FigSuggestion(name: 'git'),
                            FigSuggestion(name: 'hosted'),
                            FigSuggestion(name: 'path')
                          ])
                        ]),
                    Option(
                        name: '--no-executables',
                        description: 'Do not put executables on PATH'),
                    Option(
                        name: ['-x', '--executable'],
                        description: 'Executable(s) to place on PATH'),
                    Option(
                        name: '--overwrite',
                        description:
                            'Overwrite executables from other packages with the same name'),
                    Option(
                        name: ['-u', '--hosted-url'],
                        description:
                            'A custom pub server URL for the package. Only applies when using the \'hosted\' source',
                        args: [Arg(name: 'url')])
                  ]),
              Subcommand(
                  name: 'deactivate',
                  description: 'Remove a previously activated package',
                  options: globalOptions),
              Subcommand(
                  name: 'list',
                  description: 'List globally activated packages',
                  options: globalOptions),
              Subcommand(
                  name: 'run',
                  description:
                      'Run an executable from a globally activated package',
                  options: [
                    ...globalOptions,
                    enableAsserts,
                    noEnableAsserts,
                    Option(
                        name: '--enable-experiment',
                        description:
                            'Runs the executable in a VM with the given experiments enabled. (Will disable snapshotting, resulting in slower startup)',
                        args: [Arg(name: 'experiment')]),
                    Option(
                        name: '--sound-null-safety',
                        description:
                            'Override the default null safety execution mode',
                        exclusiveOn: ['--no-sound-null-safety']),
                    Option(
                        name: '--no-sound-null-safety',
                        description:
                            'Do not override the default null safety execution mode',
                        exclusiveOn: ['--sound-null-safety'])
                  ])
            ]),
        Subcommand(
            name: 'login',
            description: 'Log into pub.dev',
            options: globalOptions),
        Subcommand(
            name: 'logout',
            description: 'Log out of pub.dev',
            options: globalOptions),
        Subcommand(
            name: 'outdated',
            description:
                'Analyze dependencies to find which ones can be upgraded',
            options: [
              ...globalOptions,
              Option(
                  name: '--color',
                  description:
                      'Color the the output. Defaults to color when connected to a terminal, and no-color otherwise',
                  exclusiveOn: ['--no-color']),
              Option(
                  name: '--no-color',
                  description:
                      'Do not color the output. Defaults to color when connected to a terminal, and no-color otherwise',
                  exclusiveOn: ['--color']),
              Option(
                  name: '--dependency-overrides',
                  description:
                      'Show resolutions with \'dependency_overrides\'. (defaults to on)',
                  exclusiveOn: ['--no-dependency-overrides']),
              Option(
                  name: '--no-dependency-overrides',
                  description:
                      'Do not show resolutions with \'dependency_overrides\'. (defaults to on)',
                  exclusiveOn: ['--dependency-overrides']),
              Option(
                  name: '--json',
                  description: 'Output the results sing a JSON format'),
              Option(
                  name: '--mode',
                  description:
                      'Highlight versions with PROPERTY. Only packages missing the PROPERTY will be included unless --show-all',
                  args: [
                    Arg(name: 'property', suggestions: [
                      FigSuggestion(name: 'outdated'),
                      FigSuggestion(name: 'null-safety')
                    ])
                  ]),
              Option(
                  name: '--prereleases',
                  description:
                      'Include prereleases in latest version. (defaults to on in --mode=null-safety)',
                  exclusiveOn: ['--no-prereleases']),
              Option(
                  name: '--no-prereleases',
                  description:
                      'Do not include prereleases in latest version. (defaults to off in --mode=null-safety)',
                  exclusiveOn: ['--prereleases']),
              Option(
                  name: '--show-all',
                  description:
                      'Include dependencies that are already fulfilling --mode',
                  exclusiveOn: ['--no-show-all']),
              Option(
                  name: '--no-show-all',
                  description:
                      'Do not include dependencies that are already fulfilling --mode',
                  exclusiveOn: ['--show-all']),
              Option(
                  name: ['--transitive', '--no-transitive'],
                  description:
                      'Show transitive dependencies. (defaults to off in --mode=null-safety')
            ]),
        Subcommand(
            name: 'publish',
            description: 'Publish the current package to pub.dartlang.org',
            options: [
              ...globalOptions,
              dryRun,
              Option(
                  name: ['-f', '--force'],
                  description:
                      'Publish without confirmation if there are no errors')
            ]),
        Subcommand(
            name: 'remove',
            description: 'Removes a dependency from the current package',
            options: [
              ...globalOptions,
              offline,
              noOffline,
              dryRun,
              precompile,
              noPrecompile
            ]),
        Subcommand(
            name: 'upgrade',
            description:
                'Upgrade the current package\'s dependencies to latest versions',
            options: [
              ...globalOptions,
              offline,
              noOffline,
              dryRun,
              precompile,
              noPrecompile,
              Option(
                  name: '--null-safety',
                  description:
                      'Upgrade constraints in pubspec.yaml to null-safety versions'),
              Option(
                  name: '--major-versions',
                  description:
                      'Upgrades packages to their latest resolvable versions, and updates pubspec.yaml')
            ]),
        Subcommand(
            name: 'uploader',
            description: 'Manage uploaders for a package on pub.dev',
            options: [
              ...globalOptions,
              Option(
                  name: '--package',
                  description:
                      'The package whose uploaders will be modified. (defaults to the current package)')
            ])
      ]),
      Subcommand(name: 'run', description: 'Run a Dart program', options: [
        ...globalOptions,
        Option(
            name: '--observe',
            description:
                'The observe flag is a convenience flag used to run a program with a set of common options. Useful for debugging',
            args: portOrBindAddress),
        Option(
            name: '--enable-vm-service',
            description:
                'Enables the VM service and listens on the specified port for connections (default port number is 8181, default dind address is localhost)',
            args: portOrBindAddress),
        Option(
            name: ['--pause-isolates-on-exit', '--no-pause-isolates-on-exit'],
            description:
                'Pause isolates on exit when running with --enable-vm-service'),
        Option(
            name: '--pause-isolates-on-unhandled-exceptions',
            description:
                'Pause isolates when an unhandled exception is encountered when running with --enable-vm-service',
            exclusiveOn: ['--no-pause-isolates-on-unhandled-exceptions']),
        Option(
            name: '--no-pause-isolates-on-unhandled-exceptions',
            description:
                'Do not pause isolates when an unhandled exception is encountered when running with --enable-vm-service',
            exclusiveOn: ['--pause-isolates-on-unhandled-exceptions']),
        Option(
            name: '--warn-on-pause-with-no-debugger',
            description:
                'Print a warning when an isolate pauses with no attahed debugger when running with --enable-vm-service',
            exclusiveOn: ['--no-warn-on-pause-with-no-debugger']),
        Option(
            name: '--no-warn-on-pause-with-no-debugger',
            description:
                'Do not print a warning when an isolate pauses with no attahed debugger when running with --enable-vm-service',
            exclusiveOn: ['--warn-on-pause-with-no-debugger']),
        Option(
            name: '--pause-isolates-on-start',
            description:
                'Pause isolates on start when running with --enable-vm-service',
            exclusiveOn: ['--no-pause-isolates-on-start']),
        Option(
            name: '--no-pause-isolates-on-start',
            description:
                'Do not pause isolates on start when running with --enable-vm-service',
            exclusiveOn: ['--pause-isolates-on-start']),
        enableAsserts,
        noEnableAsserts,
        verbosity,
        define,
        Option(
            name: '--disable-service-auth-codes',
            description:
                'Disables the requirement for an authentication code to communicate with the VM service. Authentication codes help protect against CSRF attacks, so it is not recommended to disable them unless behind a firewall on a secure device'),
        Option(
            name: '--enable-service-port-fallback',
            description:
                'When the VM service is told to bind to a particular port, fallback to 0 if it fails to bind instead of failing to start'),
        Option(
            name: '--namespace',
            description:
                'The path to a directory that dart:io calls will treat as the root of the filesystem',
            args: [Arg(name: 'path', template: 'folders')]),
        Option(
            name: '--root-certs-file',
            description:
                'The path to a file containing the trusted root certificates to use for secure socket connections',
            args: [Arg(name: 'path', template: 'filepaths')]),
        Option(
            name: '--root-certs-cache',
            description:
                'The path to a cache directory containing the trusted root certificates to use for secure socket connections',
            args: [Arg(name: 'path', template: 'folders')]),
        Option(
            name: '--trace-loading',
            description: 'Enables tracing of library and script loading'),
        Option(
            name: '--enable-experiment',
            description:
                'Enable one or more experimental features (see dart.dev/go/experiments',
            args: [
              Arg(name: 'experiment', suggestions: [
                FigSuggestion(
                    name: 'const-functions',
                    description:
                        'Allow more of the Dart language to be executed in const expressions'),
                FigSuggestion(
                    name: 'extension-methods',
                    description:
                        'Extension methods (no-op - enabled by default)'),
                FigSuggestion(
                    name: 'extension-types', description: 'Extension types'),
                FigSuggestion(
                    name: 'generic-metadata',
                    description:
                        'Allow annotations to accept type arguments; also allow generic function types as type arguments'),
                FigSuggestion(
                    name: 'non-nullable',
                    description:
                        'Non-nullable by default. (no-op - on by default)'),
                FigSuggestion(
                    name: 'nonfunction-type-aliases',
                    description:
                        'Type aliases define a <type>, not just <functionType>. (no-op - enabled by default)'),
                FigSuggestion(
                    name: 'triple-shift', description: 'Triple-shift operator'),
                FigSuggestion(
                    name: 'value-class', description: 'Value classes'),
                FigSuggestion(name: 'variance', description: 'Sound variance')
              ])
            ])
      ]),
      Subcommand(
          name: 'test',
          description: 'Run tests for a project',
          options: [...globalOptions])
    ]);