mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-25 20:33:08 +00:00
Added sbt completions
This commit is contained in:
parent
ed475ab24b
commit
a43da0163a
1 changed files with 74 additions and 0 deletions
74
share/completions/sbt.fish
Normal file
74
share/completions/sbt.fish
Normal file
|
@ -0,0 +1,74 @@
|
|||
############
|
||||
# COMMANDS #
|
||||
############
|
||||
|
||||
# 1. In general it's not recommended to run commands one by one, because sbt startup is quite slow
|
||||
# 2. Only commands without arguments are completed, because any commands with args have to be quoted: `sbt "show key"`
|
||||
# 3. Only those commands are completed that could be useful to run as one off, like `sbt new ...`, the rest should be run in an interactive sbt shell
|
||||
# 4. Tasks is somewhat dynamic and depends on the project definition, so only most common are offered
|
||||
# 5. Same about settings (none are offered)
|
||||
|
||||
# These commands can be combined in any order
|
||||
complete -c sbt -f -a '(string split "\n" "
|
||||
about Display basic information about sbt and the build
|
||||
clean Delete files produced by the build
|
||||
compile Compile sources
|
||||
console Scala REPL: project classes
|
||||
consoleQuick Scala REPL: only project dependencies
|
||||
doc Generate API documentation
|
||||
help Display help message
|
||||
package Produce the main artifact
|
||||
plugins List currently available plugins
|
||||
projects List the names of available projects
|
||||
publish Publish artifacts to a repository
|
||||
publishLocal Publish artifacts to the local Ivy repository
|
||||
publishM2 Publish artifacts to the local Maven repository
|
||||
run Run a main class
|
||||
settings List the settings defined for the current project
|
||||
shell Launch an interactive sbt prompt
|
||||
tasks List the tasks defined for the current project
|
||||
test Execute all tests
|
||||
" | string trim | string replace -r "\s+" "\t")' \
|
||||
-n 'not contains -- "new" (commandline -cpo);
|
||||
and not contains -- "client" (commandline -cpo)'
|
||||
|
||||
# These cannot be combined with any other commands and require an argument
|
||||
complete -c sbt -f -n '[ (count (commandline -cpo)) = 1 ]' -a 'new' -d 'Create a new sbt project from the given template'
|
||||
complete -c sbt -f -n '[ (count (commandline -cpo)) = 1 ]' -a 'client' -d 'Connect to a server with an interactive sbt prompt'
|
||||
|
||||
|
||||
###########
|
||||
# OPTIONS #
|
||||
###########
|
||||
|
||||
# This is based on the output of `sbt -help`:
|
||||
|
||||
# general options without arguments
|
||||
complete -c sbt -o help -s h -f -d "Print options help message"
|
||||
complete -c sbt -o verbose -s v -f -d "Print more details"
|
||||
complete -c sbt -o debug -s d -f -d "Set log level to debug"
|
||||
complete -c sbt -o no-colors -f -d "Disable ANSI color codes"
|
||||
complete -c sbt -o sbt-create -f -d "Launch even if there's no sbt project"
|
||||
complete -c sbt -o no-share -f -d "Use all local caches"
|
||||
complete -c sbt -o no-global -f -d "Use global caches, but not global ~/.sbt directory"
|
||||
complete -c sbt -o batch -f -d "Disable interactive mode"
|
||||
|
||||
# general options with arguments
|
||||
complete -c sbt -o sbt-dir -d "Specify path to global settings/plugins" -r # path
|
||||
complete -c sbt -o sbt-boot -d "Specify path to shared boot directory" -r # path
|
||||
complete -c sbt -o ivy -d "Specify path to local Ivy repository" -r # path
|
||||
complete -c sbt -o mem -d "Set memory options" -x # integer? (default: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxPermSize=256m)
|
||||
complete -c sbt -o port -d "Turn on JVM debugging, open at the given port" -r # port
|
||||
|
||||
# sbt version
|
||||
complete -c sbt -o sbt-version -d "Use specified version of sbt" -x -a '0.13.(seq 0 6)\t"" 1.0.0\t""'
|
||||
complete -c sbt -o sbt-jar -d "Use specified jar as the sbt launcher" -r # jar path
|
||||
complete -c sbt -o sbt-rc -d "Use an RC version of sbt" -f
|
||||
complete -c sbt -o sbt-snapshot -d "Use a snapshot version of sbt" -f
|
||||
|
||||
# java-related
|
||||
complete -c sbt -o java-home -d "Alternate JAVA_HOME" -r # path
|
||||
complete -c sbt -o D -d "Pass -D option directly to the Java runtime" -x # -Dkey=val
|
||||
complete -c sbt -o J-X -d "Pass -X option directly to the Java runtime" -x # -X*
|
||||
complete -c sbt -o S-X -d "Pass -X option to sbt's scalacOptions" -x # -X*
|
||||
# TODO: list available -X options if it's possible to do in an automatic way
|
Loading…
Reference in a new issue