237 lines
8.0 KiB
Plaintext
237 lines
8.0 KiB
Plaintext
|
#compdef mix
|
||
|
#autoload
|
||
|
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users
|
||
|
# All rights reserved.
|
||
|
#
|
||
|
# Redistribution and use in source and binary forms, with or without
|
||
|
# modification, are permitted provided that the following conditions are met:
|
||
|
# * Redistributions of source code must retain the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer.
|
||
|
# * Redistributions in binary form must reproduce the above copyright
|
||
|
# notice, this list of conditions and the following disclaimer in the
|
||
|
# documentation and/or other materials provided with the distribution.
|
||
|
# * Neither the name of the zsh-users nor the
|
||
|
# names of its contributors may be used to endorse or promote products
|
||
|
# derived from this software without specific prior written permission.
|
||
|
#
|
||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||
|
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
|
||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# Description
|
||
|
# -----------
|
||
|
#
|
||
|
# Completion script for Elixir Mix
|
||
|
#
|
||
|
# Last updated: 18.04.2017
|
||
|
#
|
||
|
# ------------------------------------------------------------------------------
|
||
|
# Authors
|
||
|
# -------
|
||
|
#
|
||
|
# * Han Ngo (https://github.com/tieubao)
|
||
|
# * Teja Sophista (https://github.com/tejanium)
|
||
|
#
|
||
|
# ------------------------------------------------------------------------------
|
||
|
|
||
|
local -a _1st_arguments
|
||
|
_1st_arguments=(
|
||
|
'app.start:Starts all registered apps'
|
||
|
'app.tree:Prints the application tree'
|
||
|
'archive:Lists installed archives'
|
||
|
'archive.build:Archives this project into a .ez file'
|
||
|
'archive.install:Installs an archive locally'
|
||
|
'archive.uninstall:Uninstalls archives'
|
||
|
'clean:Deletes generated application files'
|
||
|
'cmd:Executes the given command'
|
||
|
'compile:Compiles source files'
|
||
|
'deps:Lists dependencies and their status'
|
||
|
"deps.clean:Deletes the given dependencies' files"
|
||
|
'deps.compile:Compiles dependencies'
|
||
|
'deps.get:Gets all out of date dependencies'
|
||
|
'deps.tree:Prints the dependency tree'
|
||
|
'deps.unlock:Unlocks the given dependencies'
|
||
|
'deps.update:Updates the given dependencies'
|
||
|
'do:Executes the tasks separated by comma'
|
||
|
'ecto:Prints Ecto help information'
|
||
|
'ecto.create:Creates the repository storage'
|
||
|
'ecto.drop:Drops the repository storage'
|
||
|
'ecto.dump:Dumps the repository database structure'
|
||
|
'ecto.gen.migration:Generates a new migration for the repo'
|
||
|
'ecto.gen.repo:Generates a new repository'
|
||
|
'ecto.load:Loads previously dumped database structure'
|
||
|
'ecto.migrate:Runs the repository migrations'
|
||
|
'ecto.migrations:Displays the repository migration status'
|
||
|
'ecto.rollback:Rolls back the repository migrations'
|
||
|
'escript:Lists installed escripts'
|
||
|
'escript.build:Builds an escript for the project'
|
||
|
'escript.install:Installs an escript locally'
|
||
|
'escript.uninstall:Uninstalls escripts'
|
||
|
'gettext.extract:Extracts translations from source code'
|
||
|
'gettext.merge:Merge template files into translation files'
|
||
|
'help:Prints help information for tasks'
|
||
|
'hex:Prints Hex help information'
|
||
|
'hex.build:Builds a new package version locally'
|
||
|
'hex.config:Reads, updates or deletes Hex config'
|
||
|
'hex.docs:Fetch or open documentation of a package'
|
||
|
'hex.info:Prints Hex information'
|
||
|
'hex.key:Manages Hex API key'
|
||
|
'hex.outdated:Shows outdated Hex deps for the current project'
|
||
|
'hex.owner:Manages Hex package ownership'
|
||
|
'hex.public_keys:Manages Hex public keys'
|
||
|
'hex.publish:Publishes a new package version'
|
||
|
'hex.retire:Retires a package version'
|
||
|
'hex.search:Searches for package names'
|
||
|
'hex.user:Registers or manages Hex user'
|
||
|
'loadconfig:Loads and persists the given configuration'
|
||
|
'local:Lists local tasks'
|
||
|
'local.hex:Installs Hex locally'
|
||
|
'local.phoenix:Updates Phoenix locally'
|
||
|
'local.phx:Updates the Phoenix project generator locally'
|
||
|
'local.public_keys:Manages public keys'
|
||
|
'local.rebar:Installs Rebar locally'
|
||
|
'new:Creates a new Elixir project'
|
||
|
'phoenix.gen.html:Generates controller, model and views for an HTML based resource'
|
||
|
'phoenix.server:Starts applications and their servers'
|
||
|
'phx.digest:Digests and compresses static files'
|
||
|
'phx.digest.clean:Removes old versions of static assets.'
|
||
|
'phx.gen.channel:Generates a Phoenix channel'
|
||
|
'phx.gen.context:Generates a context with functions around an Ecto schema'
|
||
|
'phx.gen.html:Generates controller, views, and context for an HTML resource'
|
||
|
'phx.gen.json:Generates controller, views, and context for a JSON resource'
|
||
|
'phx.gen.presence:Generates a Presence tracker'
|
||
|
'phx.gen.schema:Generates an Ecto schema and migration file'
|
||
|
'phx.gen.secret:Generates a secret'
|
||
|
'phx.new:Creates a new Phoenix application'
|
||
|
'phx.new.ecto:Creates a new Ecto project within an umbrella project'
|
||
|
'phx.new.web:Creates a new Phoenix web project within an umbrella project'
|
||
|
'phx.routes:Prints all routes'
|
||
|
'phx.server:Starts applications and their servers'
|
||
|
'profile.fprof:Profiles the given file or expression with fprof'
|
||
|
'run:Runs the given file or expression'
|
||
|
"test:Runs a project's tests"
|
||
|
'xref:Performs cross reference checks'
|
||
|
'--help:Describe available tasks'
|
||
|
'--version:Prints the Elixir version information'
|
||
|
)
|
||
|
|
||
|
__task_list ()
|
||
|
{
|
||
|
local expl
|
||
|
declare -a tasks
|
||
|
|
||
|
tasks=(
|
||
|
'app.start'
|
||
|
'app.tree'
|
||
|
'archive'
|
||
|
'archive.build'
|
||
|
'archive.install'
|
||
|
'archive.uninstall'
|
||
|
'clean'
|
||
|
'cmd'
|
||
|
'compile'
|
||
|
'deps'
|
||
|
'deps.clean'
|
||
|
'deps.compile'
|
||
|
'deps.get'
|
||
|
'deps.tree'
|
||
|
'deps.unlock'
|
||
|
'deps.update'
|
||
|
'do'
|
||
|
'ecto'
|
||
|
'ecto.create'
|
||
|
'ecto.drop'
|
||
|
'ecto.dump'
|
||
|
'ecto.gen.migration'
|
||
|
'ecto.gen.repo'
|
||
|
'ecto.load'
|
||
|
'ecto.migrate'
|
||
|
'ecto.migrations'
|
||
|
'ecto.rollback'
|
||
|
'escript'
|
||
|
'escript.build'
|
||
|
'escript.install'
|
||
|
'escript.uninstall'
|
||
|
'gettext.extract'
|
||
|
'gettext.merge'
|
||
|
'format'
|
||
|
'help'
|
||
|
'hex'
|
||
|
'hex.build'
|
||
|
'hex.config'
|
||
|
'hex.docs'
|
||
|
'hex.info'
|
||
|
'hex.key'
|
||
|
'hex.outdated'
|
||
|
'hex.owner'
|
||
|
'hex.public_keys'
|
||
|
'hex.publish'
|
||
|
'hex.retire'
|
||
|
'hex.search'
|
||
|
'hex.user'
|
||
|
'loadconfig'
|
||
|
'local'
|
||
|
'local.hex'
|
||
|
'local.public_keys'
|
||
|
'local.rebar'
|
||
|
'new'
|
||
|
'phoenix.gen.html'
|
||
|
'phoenix.server'
|
||
|
'phx.digest'
|
||
|
'phx.digest.clean'
|
||
|
'phx.gen.channel'
|
||
|
'phx.gen.context'
|
||
|
'phx.gen.html'
|
||
|
'phx.gen.json'
|
||
|
'phx.gen.presence'
|
||
|
'phx.gen.schema'
|
||
|
'phx.gen.secret'
|
||
|
'phx.routes'
|
||
|
'phx.server'
|
||
|
'profile.fprof'
|
||
|
'run'
|
||
|
'test'
|
||
|
'xref'
|
||
|
)
|
||
|
|
||
|
_wanted tasks expl 'help' compadd $tasks
|
||
|
}
|
||
|
|
||
|
local expl
|
||
|
|
||
|
local curcontext="$curcontext" state line
|
||
|
typeset -A opt_args
|
||
|
|
||
|
_arguments -C \
|
||
|
':command:->command' \
|
||
|
'*::options:->options'
|
||
|
|
||
|
case $state in
|
||
|
(command)
|
||
|
_describe -t commands "mix subcommand" _1st_arguments
|
||
|
return
|
||
|
;;
|
||
|
|
||
|
(options)
|
||
|
case $line[1] in
|
||
|
(help)
|
||
|
_arguments ':feature:__task_list'
|
||
|
return
|
||
|
;;
|
||
|
(test|format|run)
|
||
|
_arguments ':PATH:_files'
|
||
|
return
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
esac
|