Updated cabal completion to leverage standard bash approach. Updated sandbox info.

This commit is contained in:
Cary Robbins 2014-08-14 00:09:33 -05:00
commit 50c84aab4d

View file

@ -2,46 +2,37 @@ function cabal_sandbox_info() {
cabal_files=(*.cabal(N)) cabal_files=(*.cabal(N))
if [ $#cabal_files -gt 0 ]; then if [ $#cabal_files -gt 0 ]; then
if [ -f cabal.sandbox.config ]; then if [ -f cabal.sandbox.config ]; then
echo "%{$fg[green]%}sandboxed%{$reset_color%}" echo "%{$fg[green]%}[sandboxed] %{$reset_color%}"
else else
echo "%{$fg[red]%}not sandboxed%{$reset_color%}" echo "%{$fg[red]%}[not sandboxed] %{$reset_color%}"
fi fi
fi fi
} }
function _cabal_commands() { autoload bashcompinit
local ret=1 state bashcompinit
_arguments ':subcommand:->subcommand' && ret=0
case $state in # cabal command line completion
subcommand) # Copyright 2007-2008 "Lennart Kolmodin" <kolmodin@gentoo.org>
subcommands=( # "Duncan Coutts" <dcoutts@gentoo.org>
"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 _cabal()
{
# get the word currently being completed
local cur
cur=${COMP_WORDS[$COMP_CWORD]}
# create a command line to run
local cmd
# copy all words the user has entered
cmd=( ${COMP_WORDS[@]} )
# replace the current word with --list-options
cmd[${COMP_CWORD}]="--list-options"
# the resulting completions should be put into this array
COMPREPLY=( $( compgen -W "$( ${cmd[@]} )" -- $cur ) )
} }
compdef _cabal_commands cabal complete -F _cabal -o default cabal