fish-shell/share/completions/composer.fish
Jan Tojnar 9d1ccf8110 Fix composer completions on Python 3
Some distros (Arch) use python command for Python 3, so we need to update the scripts to work with it. We cannot just switch to python3 command because MacOS does not ship it.
2019-10-26 18:19:44 +02:00

340 lines
31 KiB
Fish

function __fish_composer_needs_command
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 ]
return 0
end
return 1
end
function __fish_composer_using_command
set cmd (commandline -opc)
if [ (count $cmd) -gt 1 ]
if [ $argv[1] = $cmd[2] ]
return 0
end
end
return 1
end
function __fish_composer_required_packages
test -f composer.json; or return
set -l python (__fish_anypython); or return
echo "
import itertools
import json
json_data = open('composer.json')
data = json.load(json_data)
json_data.close()
packages = itertools.chain(data['require'].keys(), data['require-dev'].keys())
print(\"\n\".join(packages))
" | $python
end
function __fish_composer_installed_packages
test -f composer.lock; or return
set -l python (__fish_anypython); or return
echo "
import json
json_data = open('composer.lock')
data = json.load(json_data)
json_data.close()
installed_packages = []
for package in data['packages']:
installed_packages.append(package['name'])
for package in data['packages-dev']:
installed_packages.append(package['name'])
print(\"\n\".join(installed_packages))
" | $python
end
function __fish_composer_scripts
test -f composer.json; or return
set -l python (__fish_anypython); or return
echo "
import json
json_data = open('composer.json')
data = json.load(json_data)
json_data.close()
if 'scripts' in data and data['scripts']:
print(\"\n\".join(data['scripts'].keys()))
" | $python
end
# add cmds list
set --local composer_cmds 'about' 'archive' 'browse' 'check-platform-reqs' 'clear-cache' 'config' 'create-project' 'depends' 'diagnose' 'dump-autoload' 'exec' 'global' 'help' 'home' 'init' 'install' 'licenses' 'list' 'outdated' 'prohibits' 'remove' 'require' 'run-script' 'search' 'self-update' 'show' 'suggests' 'status' 'update' 'validate' 'why' 'why-not'
# Custom scripts
complete -f -c composer -n '__fish_composer_needs_command' -a '(__fish_composer_scripts)' -d 'User script'
complete -f -c composer -n '__fish_composer_using_command run-script' -a "(__fish_composer_scripts)"
complete -f -c composer -n '__fish_composer_using_command run-script' -l 'timeout' -d 'Sets script timeout in seconds, or 0 for never.'
complete -f -c composer -n '__fish_composer_using_command run-script' -l 'dev' -d 'Sets the dev mode.'
complete -f -c composer -n '__fish_composer_using_command run-script' -l 'no-dev' -d 'Disables the dev mode.'
complete -f -c composer -n '__fish_composer_using_command run-script' -l 'list' -d 'List scripts.'
# commands
complete -f -c composer -n '__fish_composer_needs_command' -a 'about' -d 'Short information about Composer'
complete -f -c composer -n '__fish_composer_needs_command' -a 'archive' -d 'Create an archive of this composer package'
complete -f -c composer -n '__fish_composer_needs_command' -a 'browse' -d 'Opens the package\'s repository URL or homepage in your browser.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'check-platform-reqs' -d 'Check that platform requirements are satisfied.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'clear-cache' -d 'Clears composer\'s internal package cache.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'config' -d 'Set config options'
complete -f -c composer -n '__fish_composer_needs_command' -a 'create-project' -d 'Create new project from a package into given directory.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'depends' -d 'Shows which packages depend on the given package'
complete -f -c composer -n '__fish_composer_needs_command' -a 'diagnose' -d 'Diagnoses the system to identify common errors.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'dump-autoload' -d 'Dumps the autoloader'
complete -f -c composer -n '__fish_composer_needs_command' -a 'exec' -d 'Executes a vendored binary/script.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'global' -d 'Allows running commands in the global composer dir ($COMPOSER_HOME).'
complete -f -c composer -n '__fish_composer_needs_command' -a 'help' -d 'Displays help for a command'
complete -f -c composer -n '__fish_composer_needs_command' -a 'home' -d 'Opens the package\'s repository URL or homepage in your browser.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'init' -d 'Creates a basic composer.json file in current directory.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'install' -d 'Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'licenses' -d 'Show information about licenses of dependencies'
complete -f -c composer -n '__fish_composer_needs_command' -a 'list' -d 'Lists commands'
complete -f -c composer -n '__fish_composer_needs_command' -a 'outdated' -d 'Shows a list of installed packages that have updates available, including their latest version.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'prohibits' -d 'Shows which packages prevent the given package from being installed.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'remove' -d 'Removes a package from the require or require-dev'
complete -f -c composer -n '__fish_composer_needs_command' -a 'require' -d 'Adds required packages to your composer.json and installs them'
complete -f -c composer -n '__fish_composer_needs_command' -a 'run-script' -d 'Run the scripts defined in composer.json.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'search' -d 'Search for packages'
complete -f -c composer -n '__fish_composer_needs_command' -a 'self-update' -d 'Updates composer.phar to the latest version.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'show' -d 'Show information about packages'
complete -f -c composer -n '__fish_composer_needs_command' -a 'status' -d 'Show a list of locally modified packages'
complete -f -c composer -n '__fish_composer_needs_command' -a 'suggests' -d 'Shows package suggestions.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'update' -d 'Updates your dependencies to the latest version according to composer.json, and updates the composer.lock file.'
complete -f -c composer -n '__fish_composer_needs_command' -a 'validate' -d 'Validates a composer.json'
complete -f -c composer -n '__fish_composer_needs_command' -a 'why' -d 'Shows which packages cause the given package to be installed'
complete -f -c composer -n '__fish_composer_needs_command' -a 'why-not' -d 'Shows which packages prevent the given package from being installed'
# archive
complete -f -c composer -n '__fish_composer_using_command archive' -l 'format' -d 'Format of the resulting archive: tar or zip'
complete -f -c composer -n '__fish_composer_using_command archive' -l 'dir' -d 'Write the archive to this directory'
complete -f -c composer -n '__fish_composer_using_command archive' -l 'file' -d 'Write the archive with the given file name. Note that the format will be appended.'
complete -f -c composer -n '__fish_composer_using_command archive' -l 'ignore-filters' -d 'Ignore filters when saving package'
# browse
complete -f -c composer -n '__fish_composer_using_command browse' -l 'homepage' -d 'Open the homepage instead of the repository URL.'
complete -f -c composer -n '__fish_composer_using_command browse' -l 'show' -d 'Only show the homepage or repository URL.'
# check-platform-reqs
complete -f -c composer -n '__fish_composer_using_command check-platform-reqs' -l 'no-dev' -d 'Disables checking of require-dev packages requirements.'
# config
complete -f -c composer -n '__fish_composer_using_command config' -l 'global' -d 'Apply command to the global config file'
complete -f -c composer -n '__fish_composer_using_command config' -l 'editor' -d 'Open editor'
complete -f -c composer -n '__fish_composer_using_command config' -l 'auth' -d 'Affect auth config file (only used for --editor)'
complete -f -c composer -n '__fish_composer_using_command config' -l 'unset' -d 'Unset the given setting-key'
complete -f -c composer -n '__fish_composer_using_command config' -l 'list' -d 'List configuration settings'
complete -f -c composer -n '__fish_composer_using_command config' -l 'file' -d 'If you want to choose a different composer.json or config.json'
complete -f -c composer -n '__fish_composer_using_command config' -l 'absolute' -d 'Returns absolute paths when fetching *-dir config values instead of relative'
# create-project
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'stability' -d 'Minimum-stability allowed (unless a version is specified).'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'prefer-source' -d 'Forces installation from package sources when possible, including VCS information.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'prefer-dist' -d 'Forces installation from package dist even for dev versions.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'repository' -d 'Pick a different repository (as url or json config) to look for the package.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'repository-url' -d 'DEPRECATED: Use --repository instead.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'dev' -d 'Enables installation of require-dev packages (enabled by default, only present for BC).'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-dev' -d 'Disables installation of require-dev packages.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-custom-installers' -d 'DEPRECATED: Use no-plugins instead.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-scripts' -d 'Whether to prevent execution of all defined scripts in the root package.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-secure-http' -d 'Disable the secure-http config option temporarily while installing the root package. Use at your own risk. Using this flag is a bad idea.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'keep-vcs' -d 'Whether to prevent deleting the vcs folder.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'remove-vcs' -d 'Whether to force deletion of the vcs folder without prompting.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'no-install' -d 'Whether to skip installation of the package dependencies.'
complete -f -c composer -n '__fish_composer_using_command create-project' -l 'ignore-platform-reqs' -d 'Ignore platform requirements (php & ext- packages).'
# depends
complete -f -c composer -n '__fish_composer_using_command depends' -a "(__fish_composer_installed_packages)"
complete -f -c composer -n '__fish_composer_using_command depends' -l 'recursive' -d 'Recursively resolves up to the root package'
complete -f -c composer -n '__fish_composer_using_command depends' -l 'tree' -d 'Prints the results as a nested tree'
# dump-autoload
complete -f -c composer -n '__fish_composer_using_command dump-autoload' -l 'no-scripts' -d 'Skips the execution of all scripts defined in composer.json file.'
complete -f -c composer -n '__fish_composer_using_command dump-autoload' -l 'optimize' -d 'Optimizes PSR0 and PSR4 packages to be loaded with classmaps too, good for production.'
complete -f -c composer -n '__fish_composer_using_command dump-autoload' -l 'classmap-authoritative' -d 'Autoload classes from the classmap only. Implicitly enables `--optimize`.'
complete -f -c composer -n '__fish_composer_using_command dump-autoload' -l 'apcu' -d 'Use APCu to cache found/not-found classes.'
complete -f -c composer -n '__fish_composer_using_command dump-autoload' -l 'no-dev' -d 'Disables autoload-dev rules.'
# exec
complete -f -c composer -n '__fish_composer_using_command exec' -l 'list'
# help
complete -f -c composer -n '__fish_composer_using_command help' -a "$composer_cmds"
complete -f -c composer -n '__fish_composer_using_command help' -l 'xml' -d 'To output help as XML'
complete -f -c composer -n '__fish_composer_using_command help' -l 'format' -d 'The output format (txt, xml, json, or md)'
complete -f -c composer -n '__fish_composer_using_command help' -l 'raw' -d 'To output raw command help'
# init
complete -f -c composer -n '__fish_composer_using_command init' -l 'name' -d 'Name of the package'
complete -f -c composer -n '__fish_composer_using_command init' -l 'description' -d 'Description of package'
complete -f -c composer -n '__fish_composer_using_command init' -l 'author' -d 'Author name of package'
complete -f -c composer -n '__fish_composer_using_command init' -l 'type' -d 'Type of package (e.g. library, project, metapackage, composer-plugin)'
complete -f -c composer -n '__fish_composer_using_command init' -l 'homepage' -d 'Homepage of package'
complete -f -c composer -n '__fish_composer_using_command init' -l 'require' -d 'Package to require with a version constraint, e.g. foo/bar:1.0.0 or foo/bar=1.0.0 or "foo/bar 1.0.0"'
complete -f -c composer -n '__fish_composer_using_command init' -l 'require-dev' -d 'Package to require for development with a version constraint, e.g. foo/bar:1.0.0 or foo/bar=1.0.0 or "foo/bar 1.0.0"'
complete -f -c composer -n '__fish_composer_using_command init' -l 'stability' -d 'Minimum stability (empty or one of: stable, RC, beta, alpha, dev)'
complete -f -c composer -n '__fish_composer_using_command init' -l 'license' -d 'License of package'
complete -f -c composer -n '__fish_composer_using_command init' -l 'repository' -d 'Add custom repositories, either by URL or using JSON arrays'
# install
complete -f -c composer -n '__fish_composer_using_command install' -l 'prefer-source' -d 'Forces installation from package sources when possible, including VCS information.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'prefer-dist' -d 'Forces installation from package dist even for dev versions.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'dry-run' -d 'Outputs the operations but will not execute anything (implicitly enables --verbose).'
complete -f -c composer -n '__fish_composer_using_command install' -l 'dev' -d 'Enables installation of require-dev packages (enabled by default, only present for BC).'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-dev' -d 'Disables installation of require-dev packages.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-custom-installers' -d 'DEPRECATED: Use no-plugins instead.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-autoloader' -d 'Skips autoloader generation'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-scripts' -d 'Skips the execution of all scripts defined in composer.json file.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'no-suggest' -d 'Do not show package suggestions.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'optimize-autoloader' -d 'Optimize autoloader during autoloader dump'
complete -f -c composer -n '__fish_composer_using_command install' -l 'classmap-authoritative' -d 'Autoload classes from the classmap only. Implicitly enables `--optimize-autoloader`.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'apcu-autoloader' -d 'Use APCu to cache found/not-found classes.'
complete -f -c composer -n '__fish_composer_using_command install' -l 'ignore-platform-reqs' -d 'Ignore platform requirements (php & ext- packages).'
# licenses
complete -f -c composer -n '__fish_composer_using_command licenses' -l 'format' -d 'Format of the output: text or json'
complete -f -c composer -n '__fish_composer_using_command licenses' -l 'no-dev' -d 'Disables search in require-dev packages.'
# list
complete -f -c composer -n '__fish_composer_using_command list' -l 'xml' -d 'To output list as XML'
complete -f -c composer -n '__fish_composer_using_command list' -l 'raw' -d 'To output raw command list'
complete -f -c composer -n '__fish_composer_using_command list' -l 'format' -d 'The output format (txt, xml, json, or md)'
# outdated
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'outdated' -d 'Show only packages that are outdated (this is the default, but present here for compat with `show`'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'all' -d 'Show all installed packages with their latest versions'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'direct' -d 'Shows only packages that are directly required by the root package'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'strict' -d 'Return a non-zero exit code when there are outdated packages'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'minor-only' -d 'Show only packages that have minor SemVer-compatible updates. Use with the --outdated option.'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'format' -d 'Format of the output: text or json'
complete -f -c composer -n '__fish_composer_using_command outdated' -l 'ignore' -d 'Ignore specified package(s). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.'
# prohibits
complete -f -c composer -n '__fish_composer_using_command prohibits' -l 'recursive' -d 'Recursively resolves up to the root package'
complete -f -c composer -n '__fish_composer_using_command prohibits' -l 'tree' -d 'Prints the results as a nested tree'
# remove
complete -f -c composer -n '__fish_composer_using_command remove' -a "(__fish_composer_required_packages)"
complete -f -c composer -n '__fish_composer_using_command remove' -l 'dev' -d 'Removes a package from the require-dev section.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'no-update' -d 'Disables the automatic update of the dependencies.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'no-scripts' -d 'Skips the execution of all scripts defined in composer.json file.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'update-no-dev' -d 'Run the dependency update with the --no-dev option.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'update-with-dependencies' -d 'Allows inherited dependencies to be updated with explicit dependencies. (Deprecrated, is now default behavior)'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'no-update-with-dependencies' -d 'Does not allow inherited dependencies to be updated with explicit dependencies.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'ignore-platform-reqs' -d 'Ignore platform requirements (php & ext- packages).'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'optimize-autoloader' -d 'Optimize autoloader during autoloader dump'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'classmap-authoritative' -d 'Autoload classes from the classmap only. Implicitly enables `--optimize-autoloader`.'
complete -f -c composer -n '__fish_composer_using_command remove' -l 'apcu-autoloader' -d 'Use APCu to cache found/not-found classes.'
# require
complete -f -c composer -n '__fish_composer_using_command require' -l 'dev' -d 'Add requirement to require-dev.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'prefer-source' -d 'Forces installation from package sources when possible, including VCS information.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'prefer-dist' -d 'Forces installation from package dist even for dev versions.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'no-suggest' -d 'Do not show package suggestions.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'no-update' -d 'Disables the automatic update of the dependencies.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'no-scripts' -d 'Skips the execution of all scripts defined in composer.json file.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'update-no-dev' -d 'Run the dependency update with the --no-dev option.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'update-with-dependencies' -d 'Allows inherited dependencies to be updated, except those that are root requirements.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'update-with-all-dependencies' -d 'Allows all inherited dependencies to be updated, including those that are root requirements.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'ignore-platform-reqs' -d 'Ignore platform requirements (php & ext- packages).'
complete -f -c composer -n '__fish_composer_using_command require' -l 'prefer-stable' -d 'Prefer stable versions of dependencies.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'prefer-lowest' -d 'Prefer lowest versions of dependencies.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'sort-packages' -d 'Sorts packages when adding/updating a new dependency'
complete -f -c composer -n '__fish_composer_using_command require' -l 'optimize-autoloader' -d 'Optimize autoloader during autoloader dump'
complete -f -c composer -n '__fish_composer_using_command require' -l 'classmap-authoritative' -d 'Autoload classes from the classmap only. Implicitly enables `--optimize-autoloader`.'
complete -f -c composer -n '__fish_composer_using_command require' -l 'apcu-autoloader' -d 'Use APCu to cache found/not-found classes.'
# search
complete -f -c composer -n '__fish_composer_using_command search' -l 'only-name' -d 'Search only in name'
complete -f -c composer -n '__fish_composer_using_command search' -l 'type' -d 'Search for a specific package type'
# self-update
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'rollback' -d 'Revert to an older installation of composer'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'clean-backups' -d 'Delete old backups during an update. This makes the current version of composer the only backup available after the update'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'update-keys' -d 'Prompt user for a key update'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'stable' -d 'Force an update to the stable channel'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'preview' -d 'Force an update to the preview channel'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'snapshot' -d 'Force an update to the snapshot channel'
complete -f -c composer -n '__fish_composer_using_command self-update' -l 'set-channel-only' -d 'Only store the channel as the default one and then exit'
# show
complete -f -c composer -n '__fish_composer_using_command show' -l 'all' -d 'List all packages'
complete -f -c composer -n '__fish_composer_using_command show' -l 'installed' -d 'List installed packages only (enabled by default, only present for BC).'
complete -f -c composer -n '__fish_composer_using_command show' -l 'platform' -d 'List platform packages only'
complete -f -c composer -n '__fish_composer_using_command show' -l 'available' -d 'List available packages only'
complete -f -c composer -n '__fish_composer_using_command show' -l 'self' -d 'Show the root package information'
complete -f -c composer -n '__fish_composer_using_command show' -l 'name-only' -d 'List package names only'
complete -f -c composer -n '__fish_composer_using_command show' -l 'path' -d 'Show package paths'
complete -f -c composer -n '__fish_composer_using_command show' -l 'tree' -d 'List the dependencies as a tree'
complete -f -c composer -n '__fish_composer_using_command show' -l 'latest' -d 'Show the latest version'
complete -f -c composer -n '__fish_composer_using_command show' -l 'outdated' -d 'Show the latest version but only for packages that are outdated'
complete -f -c composer -n '__fish_composer_using_command show' -l 'ignore' -d 'Ignore specified package(s). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.'
complete -f -c composer -n '__fish_composer_using_command show' -l 'minor-only' -d 'Show only packages that have minor SemVer-compatible updates. Use with the --outdated option.'
complete -f -c composer -n '__fish_composer_using_command show' -l 'direct' -d 'Shows only packages that are directly required by the root package'
complete -f -c composer -n '__fish_composer_using_command show' -l 'strict' -d 'Return a non-zero exit code when there are outdated packages'
complete -f -c composer -n '__fish_composer_using_command show' -l 'format' -d 'Format of the output: text or json'
# suggests
complete -f -c composer -n '__fish_composer_using_command suggests' -l 'by-package' -d 'Groups output by suggesting package'
complete -f -c composer -n '__fish_composer_using_command suggests' -l 'by-suggestion' -d 'Groups output by suggested package'
complete -f -c composer -n '__fish_composer_using_command suggests' -l 'no-dev' -d 'Exclude suggestions from require-dev packages'
# update
complete -f -c composer -n '__fish_composer_using_command update' -a "(__fish_composer_required_packages)"
complete -f -c composer -n '__fish_composer_using_command update' -l 'prefer-source' -d 'Forces installation from package sources when possible, including VCS information.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'prefer-dist' -d 'Forces installation from package dist even for dev versions.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'dry-run' -d 'Outputs the operations but will not execute anything (implicitly enables --verbose).'
complete -f -c composer -n '__fish_composer_using_command update' -l 'dev' -d 'Enables installation of require-dev packages (enabled by default, only present for BC).'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-dev' -d 'Disables installation of require-dev packages.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'lock' -d 'Only updates the lock file hash to suppress warning about the lock file being out of date.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-custom-installers' -d 'DEPRECATED: Use no-plugins instead.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-autoloader' -d 'Skips autoloader generation'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-scripts' -d 'Skips the execution of all scripts defined in composer.json file.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-progress' -d 'Do not output download progress.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'no-suggest' -d 'Do not show package suggestions.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'with-dependencies' -d 'Add also dependencies of whitelisted packages to the whitelist, except those defined in root package.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'with-all-dependencies' -d 'Add also all dependencies of whitelisted packages to the whitelist, including those defined in root package.'
complete -f -c composer -n '__fish_composer_using_command update' -s 'v' -l 'verbose' -d 'Shows more details including new commits pulled in when updating packages.'
complete -f -c composer -n '__fish_composer_using_command update' -s 'o' -l 'optimize-autoloader' -d 'Optimize autoloader during autoloader dump.'
complete -f -c composer -n '__fish_composer_using_command update' -s 'a' -l 'classmap-authoritative' -d 'Autoload classes from the classmap only. Implicitly enables `--optimize-autoloader`.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'apcu-autoloader' -d 'Use APCu to cache found/not-found classes.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'ignore-platform-reqs' -d 'Ignore platform requirements (php & ext- packages).'
complete -f -c composer -n '__fish_composer_using_command update' -l 'prefer-stable' -d 'Prefer stable versions of dependencies.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'prefer-lowest' -d 'Prefer lowest versions of dependencies.'
complete -f -c composer -n '__fish_composer_using_command update' -s 'i' -l 'interactive' -d 'Interactive interface with autocompletion to select the packages to update.'
complete -f -c composer -n '__fish_composer_using_command update' -l 'root-reqs' -d 'Restricts the update to your first degree dependencies.'
# validate
complete -f -c composer -n '__fish_composer_using_command validate' -l 'no-check-all' -d 'Do not validate requires for overly strict/loose constraints'
complete -f -c composer -n '__fish_composer_using_command validate' -l 'no-check-lock' -d 'Do not check if lock file is up to date'
complete -f -c composer -n '__fish_composer_using_command validate' -l 'no-check-publish' -d 'Do not check for publish errors'
complete -f -c composer -n '__fish_composer_using_command validate' -l 'with-dependencies' -d 'Also validate the composer.json of all installed dependencies'
complete -f -c composer -n '__fish_composer_using_command validate' -l 'strict' -d 'Return a non-zero exit code for warnings as well as errors'
# why
complete -f -c composer -n '__fish_composer_using_command why' -a "(__fish_composer_installed_packages)"
# why-not
complete -f -c composer -n '__fish_composer_using_command why-not' -a "(__fish_composer_installed_packages)"
# global options
complete -c composer -n '__fish_composer_needs_command' -s 'h' -l 'help' -d 'Displays composer\'s help.'
complete -c composer -n '__fish_composer_needs_command' -s 'q' -l 'quiet' -d 'Do not output any message.'
complete -c composer -n '__fish_composer_needs_command' -s 'v' -l 'verbose' -d 'Increase the verbosity of messages: 1 for normal output (-v), 2 for more verbose output (-vv) and 3 for debug (-vvv).'
complete -c composer -n '__fish_composer_needs_command' -s 'V' -l 'version' -d 'Display composer\'s application version.'
complete -c composer -n '__fish_composer_needs_command' -l 'ansi' -d 'Force ANSI output.'
complete -c composer -n '__fish_composer_needs_command' -l 'no-ansi' -d 'Disable ANSI output.'
complete -c composer -n '__fish_composer_needs_command' -s 'n' -l 'no-interaction' -d 'Do not ask any interactive question.'
complete -c composer -n '__fish_composer_needs_command' -l 'profile' -d 'Display timing and memory usage information.'
complete -c composer -n '__fish_composer_needs_command' -l 'no-plugins' -d 'Whether to disable plugins.'
complete -c composer -n '__fish_composer_needs_command' -s 'd' -l 'working-dir' -d 'If specified, use the given directory as working directory.'
complete -c composer -n '__fish_composer_needs_command' -l 'no-cache' -d 'Prevent use of the cache.'