From 01d5f0155ddeecdee65e92c235679565e1bbe6a1 Mon Sep 17 00:00:00 2001 From: Mirko Caserta Date: Thu, 31 Jan 2013 22:54:20 +0100 Subject: [PATCH] Full completion support, yay! --- plugins/sbt/_sbt | 57 ++++++++++++++++++++++++++++++++++++++ plugins/sbt/sbt.plugin.zsh | 23 +-------------- 2 files changed, 58 insertions(+), 22 deletions(-) create mode 100644 plugins/sbt/_sbt diff --git a/plugins/sbt/_sbt b/plugins/sbt/_sbt new file mode 100644 index 000000000..3a94d0cf2 --- /dev/null +++ b/plugins/sbt/_sbt @@ -0,0 +1,57 @@ +#compdef sbt +#autoload + +local -a _1st_arguments +_1st_arguments=( + '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' +) + +local expl + +_arguments \ + '(-h)-h[prints an help message]' \ + '(-help)-help[prints an help message]' \ + '(-v)-v[this runner is chattier]' \ + '(-verbose)-verbose[this runner is chattier]' \ + '(-d)-d[set sbt log level to debug]' \ + '(-debug)-debug[set sbt log level to debug]' \ + '(-no-colors)-no-colors[disable ANSI color codes]' \ + '(-sbt-create)-sbt-create[start even if current dir contains no sbt project]' \ + '(-sbt-dir)-sbt-dir[path to global settings/plugins dir (default: ~/.sbt)]' \ + '(-sbt-boot)-sbt-boot[path to shared boot dir (default: ~/.sbt/boot)]' \ + '(-ivy)-ivy[path to local Ivy repository (default: ~/.ivy2)]' \ + '(-mem)-mem[set memory options]' \ + '(-no-share)-no-share[use all local caches; no sharing]' \ + '(-no-global)-no-global[use global caches, but do not use global ~/.sbt dir]' \ + '(-jvm-debug)-jvm-debug[turn on JVM debugging, open at the given port]' \ + '(-batch)-batch[disable interactive mode]' \ + '(-sbt-version)-sbt-version[use the specified version of sbt]' \ + '(-sbt-jar)-sbt-jar[use the specified jar as the sbt launcher]' \ + '(-sbt-rc)-sbt-rc[use an RC version of sbt]' \ + '(-sbt-snapshot)-sbt-snapshot[use a snapshot version of sbt]' \ + '(-java-home)-java-home[alternate JAVA_HOME]' \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "sbt subcommand" _1st_arguments + return +fi diff --git a/plugins/sbt/sbt.plugin.zsh b/plugins/sbt/sbt.plugin.zsh index f610e3aa5..203c691f5 100644 --- a/plugins/sbt/sbt.plugin.zsh +++ b/plugins/sbt/sbt.plugin.zsh @@ -2,7 +2,7 @@ # FILE: sbt.plugin.zsh # DESCRIPTION: oh-my-zsh plugin file. # AUTHOR: Mirko Caserta (mirko.caserta@gmail.com) -# VERSION: 1.0.1 +# VERSION: 1.0.2 # ------------------------------------------------------------------------------ # aliases - mnemonic: prefix is 'sb' @@ -21,24 +21,3 @@ alias sbr='sbt run' alias sbrm='sbt run-main' alias sbu='sbt update' alias sbx='sbt test' - -function listSbtCompletions { - reply=( - # common lifecycle - clean compile doc gen-idea update - # console - console console-quick console-project - # dist - dist dist:clean - # package - package package-doc package-src - # publish - publish publish-local - # - run run-main - # test - test test-only test-quick test:console-quick test:run-main - ); -} - -compctl -K listSbtCompletions sbt