From a71b8df9b21bfa3e3cb11ca7c72a56adf5dde7ee Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 11 Jul 2013 22:07:18 +0100 Subject: Update make completion with gnu options --- Completion/Unix/Command/_make | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) (limited to 'Completion/Unix/Command/_make') diff --git a/Completion/Unix/Command/_make b/Completion/Unix/Command/_make index 72d16bb7d..5dd0a21a4 100644 --- a/Completion/Unix/Command/_make +++ b/Completion/Unix/Command/_make @@ -158,13 +158,36 @@ _make() { if [[ $is_gnu == gnu ]] then incl="(-|)include" - # TBD: update option_specs option_specs=( - '-C[change directory first]:directory:->dir' - '-I[include directory for makefiles]:directory:->dir' - '-f[specify makefile]:makefile:->file' - '-o[specify file not to remake]:file not to remake:->file' - '-W[pretend file was modified]:file to treat as modified:->file' + {-B,--always-make}'[Unconditionally make all targets]' + {-C,--directory=}'[change directory first]:directory:->dir' + '-d[Print lots of debug information]' + '--debug=-[Print various types of debug information]:FLAGS' + {-e,--environment-overrides}'[Environment variables override makefiles]' + '--eval=-[Evaluate STRING as a makefile statement]:STRING' + {-f,--file=,--makefile=}'[Read FILE as a makefile]:file:->file' + '-h[Print this message and exit]' + {-i,--ignore-errors}'[Ignore errors from recipes]' + {-I,--include-dir=}'[Search DIRECTORY for included makefiles]:directory:->dir' + {-j,--jobs=}'[Allow N jobs at once; infinite jobs with no arg]:number of jobs' + {-k,--keep-going}"[Keep going when some targets can't be made]" + {-l,--load-average=,--max-load}"[Don't start multiple jobs unless load is below N]:load" + {-L,--check-symlink-times}'[Use the latest mtime between symlinks and target]' + {-n,--just-print,--dry-run,--recon}"[Don't actually run any recipe; just print them]" + {-o,--old-file=,--assume-old=}"[Consider FILE to be very old and don't remake it]:file not to remake:->file" + {-p,--print-data-base}'[Print makes internal database]' + {-q,--question}'[Run no recipe; exit status says if up to date]' + {-r,--no-builtin-rules}'[Disable the built-in implicit rules]' + {-R,--no-builtin-variables}'[Disable the built-in variable settings]' + {-s,--silent,--quiet}"[Don't echo recipes]" + {-S,--no-keep-going,--stop}'[Turns off -k]' + {-t,--touch}'[Touch targets instead of remaking them]' + {-v,--version}'[Print the version number of make and exit]' + {-w,--print-directory}'[Print the current directory]' + '--no-print-directory[Turn off -w, even if it was turned on implicitly]' + {-W,--what-if=,--new-file=,--asume-new=}'[Consider FILE to be infinitely new]:file to treat as modified:->file' + '--warn-undefined-variables[Warn when an undefined variable is referenced]' + '--warn-undefined-functions[Warn when an undefined user function is called]' ) else # Basic make options only. @@ -191,8 +214,7 @@ _make() { ;; (target) - file=($opt_args[(K)(-f|--file|--makefile)]) - file=$file[1] + file=${(v)opt_args[(I)(-f|--file|--makefile)]} if [[ -n $file ]] then [[ $file == [^/]* ]] && file=${(q)$(_make-findBasedir $words)}/$file -- cgit 1.4.1