summaryrefslogtreecommitdiff
path: root/plugins/cabal
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/cabal')
-rw-r--r--plugins/cabal/cabal.plugin.zsh47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh
new file mode 100644
index 000000000..9f76add7a
--- /dev/null
+++ b/plugins/cabal/cabal.plugin.zsh
@@ -0,0 +1,47 @@
+function cabal_sandbox_info() {
+ cabal_files=(*.cabal(N))
+ if [ $#cabal_files -gt 0 ]; then
+ if [ -f cabal.sandbox.config ]; then
+ echo "%{$fg[green]%}sandboxed%{$reset_color%}"
+ else
+ echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
+ fi
+ fi
+}
+
+function _cabal_commands() {
+ local ret=1 state
+ _arguments ':subcommand:->subcommand' && ret=0
+
+ case $state in
+ subcommand)
+ subcommands=(
+ "bench:Run the benchmark, if any (configure with UserHooks)"
+ "build:Make this package ready for installation"
+ "check:Check the package for common mistakes"
+ "clean:Clean up after a build"
+ "copy:Copy teh files into the install locations"
+ "configure:Prepare to build the package"
+ "fetch:Downloads packages for later installation"
+ "haddock:Generate HAddock HTML documentation"
+ "help:Help about commands"
+ "hscolour:Generate HsColour colourised code, in HTML format"
+ "info:Display detailed information about a particular package"
+ "init:Interactively create a .cabal file"
+ "install:Installs a list of packages"
+ "list:List packages matching a search string"
+ "register:Register this package with the compiler"
+ "report:Upload build reports to a remote server"
+ "sdist:Generate a source distribution file (.tar.gz)"
+ "test:Run the test suite, if any (configure with UserHooks)"
+ "unpack:Unpacks packages for user inspection"
+ "update:Updates list of known packages"
+ "upload:Uploads source packages to Hackage"
+ )
+ _describe -t subcommands 'cabal subcommands' subcommands && ret=0
+ esac
+
+ return ret
+}
+
+compdef _cabal_commands cabal