summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2015-09-21 21:08:29 +0900
committerJun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>2015-09-21 21:08:29 +0900
commit05ec830c943378baf8b9feeb69b97ba6c8eaf257 (patch)
treefb38d814109e539793b0137fbf0616621ec76a7f
parentbdcdb562d97f7ed604ead37ccda52792dff9a93f (diff)
downloadzsh-05ec830c943378baf8b9feeb69b97ba6c8eaf257.tar.gz
zsh-05ec830c943378baf8b9feeb69b97ba6c8eaf257.zip
36574: new completion for the lldb debbuger
-rw-r--r--Completion/Unix/Command/_lldb55
1 files changed, 55 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_lldb b/Completion/Unix/Command/_lldb
new file mode 100644
index 000000000..16e346cfb
--- /dev/null
+++ b/Completion/Unix/Command/_lldb
@@ -0,0 +1,55 @@
+#compdef lldb
+
+local curcontext=$curcontext state state_descr line expl ret=1
+typeset -A opt_args
+local -a args
+
+args=(
+ '*'{-o+,--one-line=}'[run one-line lldb command after loading executable]:lldb command: '
+ '*'{-s+,--source=}'[run lldb commands from a file after loading executable]:file:_files'
+ '*'{-O+,--one-line-before-file=}'[run one-line lldb command before loading executable]:lldb command'
+ '*'{-S+,--source-before-file=}'[run lldb commands from a file before loading executable]:file:_files'
+ '(-k --one-line-on-crash)'{-k+,--one-line-on-crash=}'[run one-line lldb command if target crashes in batch mode]:lldb command'
+ '(-K --source-on-crash)'{-K+,--source-on-crash=}'[run lldb commands from a file if target crashes in batch mode]:file:_files'
+ '(-b --batch)'{-b,--batch}'[run commands from -s -S -o -O and quit]'
+ '(-Q --source-quietly)'{-Q,--source-quietly}'[suppress output from -s, -S, -o or -O]'
+ '(-e --editor)'{-e,--editor}'[open source files using "external editor" mechanism]'
+ '(-x --no-lldbinit)'{-x,--no-lldbinit}'[do not automatically parse .lldbinit files]'
+ '(-X --no-use-colors)'{-X,--no-use-colors}'[do not use colors]'
+ '(-d --debug)'{-d,--debug}'[print extra information for debugging itself]'
+ '(-r --repl)'{-r,--repl}'[run lldb in REPL mode]'
+ '(-l --script-language)'{-l+,--script-language=}'[use the specified scripting language]:language:(Python Perl Ruby Tcl)'
+ - info
+ '(-)'{-h,--help}'[print the usage information]'
+ '(-)'{-v,--version}'[print the current version number]'
+ '(-)'{-P,--python-path}'[print path to the lldb.py file]'
+ - file
+ '(-f --file)'{-f+,--file=}'[specify executable file to debug]:executable:_files -g "*(-*)"'
+ '(-a --arch)'{-a+,--arch=}'[use the specified architecture]:arch'
+ '(-c --core)'{-c+,--core=}'[specify core file to open]:core file:_files -g "*core*(-.)"'
+ '*::executable and arguments:->exe_args'
+ - name
+ '(-n --attach-name)'{-n+,--attach-name=}'[attach to the named process]:process name'
+ '(-w --wait-for)'{-w,--wait-for}'[wait for the specified process to launch]'
+ - pid
+ '(-p --attach-pid)'{-p+,--attach-pid=}'[attach to the specified process]:pid:_pids'
+)
+
+_arguments -C -s -S : $args && return 0
+
+case $state in
+ (exe_args)
+ if [[ -z $opt_args[(I)file-(-f|--file)] ]]; then
+ if [[ $CURRENT -eq 1 ]]; then
+ _wanted executables expl 'executable' _files -g '*(-*)' && ret=0
+ else
+ _normal && ret=0
+ fi
+ else
+ words=( ${(v)opt_args[(i)file-(-f|--file)]} "$words[@]" )
+ (( CURRENT++ ))
+ _normal && ret=0
+ fi
+esac
+
+return ret