Merge pull request #123 from mcaserta/master

Improved SBT completion
This commit is contained in:
Julien Nicoulaud 2013-02-17 06:55:14 -08:00
commit c7cdfaad3d
1 changed files with 52 additions and 8 deletions

View File

@ -1,6 +1,6 @@
#compdef sbt
# ------------------------------------------------------------------------------
# Copyright (c) 2012 Github zsh-users - http://github.com/zsh-users
# Copyright (c) 2013 Github zsh-users - http://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@ -28,22 +28,66 @@
# Description
# -----------
#
# Completion script for sbt 0.10+ (https://github.com/harrah/xsbt).
# Completion script for sbt 0.12+ (http://scala-sbt.org).
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Tony Sloane <inkytonik@gmail.com>
# * Mirko Caserta <mirko.caserta@gmail.com>
#
# ------------------------------------------------------------------------------
function _sbt_tasks () {
compadd clean compile console console-project console-quick doc package \
package-doc package-src publish publish-local run run-main test test-only \
test:compile test:package test:package-doc test:package-src update
}
local -a _sbt_commands
_sbt_commands=(
'clean:delete files produced by the build'
'compile:compile sources'
'console:start the Scala REPL with project classes on the classpath'
'console-quick:start the Scala REPL with project deps on the classpath'
'console-project:start the Scala REPL w/sbt+build-def on the classpath'
'dist:generate distribution artifacts'
'dist\:clean:clean distribution artifacts'
'doc:generate API documentation'
'gen-idea:generate Intellij Idea project files'
'package:produce the main artifact, such as a binary jar'
'package-doc:produce a doc artifact, such as a jar containing API docs'
'package-src:produce a source artifact, such as a jar containing sources'
'publish:publish artifacts to a repository'
'publish-local:publish artifacts to the local repository'
'run:run a main class'
'run-main:run the main class selected by the first argument'
'test:execute all tests'
'test-only:execute the tests provided as arguments'
'test-quick:execute previously failed tests'
'update:resolve and optionally retrieve dependencies'
)
_arguments "*:task:_sbt_tasks"
local expl
_arguments \
'(-help)-h[prints an help message]' \
'(-h)-help[prints an help message]' \
'(-verbose)-v[this runner is chattier]' \
'(-v)-verbose[this runner is chattier]' \
'(-debug)-d[set sbt log level to debug]' \
'(-d)-debug[set sbt log level to debug]' \
'-no-colors[disable ANSI color codes]' \
'-sbt-create[start even if current dir contains no sbt project]' \
'-sbt-dir[path to global settings/plugins dir (default: ~/.sbt)]' \
'-sbt-boot[path to shared boot dir (default: ~/.sbt/boot)]' \
'-ivy[path to local Ivy repository (default: ~/.ivy2)]' \
'-mem[set memory options]' \
'-no-share[use all local caches; no sharing]' \
'-no-global[use global caches, but do not use global ~/.sbt dir]' \
'-jvm-debug[turn on JVM debugging, open at the given port]' \
'-batch[disable interactive mode]' \
'-sbt-version[use the specified version of sbt]' \
'-sbt-jar[use the specified jar as the sbt launcher]' \
'(-sbt-snapshot)-sbt-rc[use an RC version of sbt]' \
'(-sbt-rc)-sbt-snapshot[use a snapshot version of sbt]' \
'-java-home[alternate JAVA_HOME]' \
'*:: :->subcmds' && return 0
_describe -t commands "sbt subcommand" _sbt_commands
return 0