Browse Source

Add simple Stack commands list

Daniel Stankevich 9 years ago
parent
commit
a8a8bc3967
1 changed files with 49 additions and 0 deletions
  1. 49 0
      plugins/stack/stack.plugin.zsh

+ 49 - 0
plugins/stack/stack.plugin.zsh

@@ -0,0 +1,49 @@
+function stack_sandbox_info() {
+    stack_files=(*.stack(N))
+    if [ $#stack_files -gt 0 ]; then
+        if [ -f stack.sandbox.config ]; then
+            echo "%{$fg[green]%}sandboxed%{$reset_color%}"
+        else
+            echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
+        fi
+    fi
+}
+
+function _stack_commands() {
+    local ret=1 state
+    _arguments ':subcommand:->subcommand' && ret=0
+
+    case $state in
+      subcommand)
+        subcommands=(
+          "build:Build the project(s) in this directory/configuration"
+          "install:Build executables and install to a user path"
+          "test:Build and test the project(s) in this directory/configuration"
+          "bench:Build and benchmark the project(s) in this directory/configuration"
+          "haddock:Generate haddocks for the project(s) in this directory/configuration"
+          "new:Create a brand new project"
+          "init:Initialize a stack project based on one or more stack packages"
+          "solver:Use a dependency solver to try and determine missing extra-deps"
+          "setup:Get the appropriate ghc for your project"
+          "path:Print out handy path information"
+          "unpack:Unpack one or more packages locally"
+          "update:Update the package index"
+          "upgrade:Upgrade to the latest stack (experimental)"
+          "upload:Upload a package to Hackage"
+          "dot:Visualize your project's dependency graph using Graphviz dot"
+          "exec:Execute a command"
+          "ghc:Run ghc"
+          "ghci:Run ghci in the context of project(s)"
+          "ide:Run ide-backend-client with the correct arguments"
+          "runghc:Run runghc"
+          "clean:Clean the local packages"
+          "docker:Subcommands specific to Docker use"
+        )
+        _describe -t subcommands 'stack subcommands' subcommands && ret=0
+    esac
+
+    return ret
+}
+
+compdef _stack_commands stack
+