From 76be800073255eb3cdc1bcdec3159a973f163ad7 Mon Sep 17 00:00:00 2001 From: Oliver Kiddle Date: Sun, 19 Feb 2023 15:06:45 +0100 Subject: 51456: complete only modified files with git add -u Also fix a typo, add a missing =, add a prompt for function name after git blame -L and git worktree --force has gained a short -f form. --- ChangeLog | 3 +++ Completion/Unix/Command/_git | 22 ++++++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index b5bb1da99..8cca5d1e4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2023-02-19 Oliver Kiddle + * 51456: Completion/Unix/Command/_git: complete only modified + files with git add -u + * 51455, 51461: Completion/Unix/Type/_ldap_attributes Completion/BSD/Command/_ldap, Completion/Unix/Command/_openldap, Completion/Unix/Type/_ldap_filters: new completion for the OpenLDAP diff --git a/Completion/Unix/Command/_git b/Completion/Unix/Command/_git index a2555cbf0..49f9fa504 100644 --- a/Completion/Unix/Command/_git +++ b/Completion/Unix/Command/_git @@ -76,17 +76,21 @@ _git-add () { case $state in (file) - declare -a ignored_files_alternatives + declare -a file_alternatives + if [[ -z ${opt_args[(I)-u|--update]} ]]; then + file_alternatives=( + 'other-files::__git_ignore_line_inside_arguments __git_other_files' + ) + fi if [[ -n ${opt_args[(I)-f|--force]} ]]; then - ignored_files_alternatives=( + file_alternatives+=( 'ignored-modified-files:ignored modified file:__git_ignore_line_inside_arguments __git_modified_files --ignored' 'ignored-other-files:ignored other file:__git_ignore_line_inside_arguments __git_other_files --ignored') fi _alternative \ 'modified-files::__git_ignore_line_inside_arguments __git_modified_files' \ - 'other-files::__git_ignore_line_inside_arguments __git_other_files' \ - $ignored_files_alternatives && ret=0 + $file_alternatives && ret=0 ;; esac @@ -2365,7 +2369,7 @@ _git-worktree() { _arguments -S $endopt \ '(-n --dry-run)'{-n,--dry-run}"[don't remove, show only]" \ '(-v --verbose)'{-v,--verbose}'[report pruned objects]' \ - '--expire[expire objects older than specified time]:time' && ret=0 + '--expire=[expire objects older than specified time]:time' && ret=0 ;; (list) _arguments -S $endopt '--porcelain[machine-readable output]' && ret=0 @@ -2379,7 +2383,8 @@ _git-worktree() { ':location:_directories' && ret=0 ;; (remove) - _arguments -C -S $endopt '--force[remove working trees that are not clean or that have submodules]' \ + _arguments -C -S $endopt \ + '(-f --force)'{-f,--force}'[remove working trees that are not clean or that have submodules]' \ ': :->worktrees' && ret=0 ;; (unlock) @@ -3901,7 +3906,7 @@ _git-reflog () { ;; (delete) _arguments -C -S \ - '(-n --dry-run)'{-n,--dry-run}"[dpn't update entries; show what would be done]" \ + '(-n --dry-run)'{-n,--dry-run}"[don't update entries; show what would be done]" \ '--updateref[update ref with SHA-1 of top reflog entry after expiring or deleting]' \ '--rewrite[adjust reflog entries to ensure old SHA-1 points to new SHA-1 of previous entry after expiring or deleting]' \ '--verbose[output additional information]' \ @@ -4134,7 +4139,8 @@ _git-blame () { else _alternative \ 'line-numbers: :__git_guard_number "line number"' \ - 'regexes::_guard "(/[^/]#(\\?[^/]#)#(/|)|)" regex' && ret=0 + 'regexes::_guard "(/[^/]#(\\?[^/]#)#(/|)|)" regex' \ + 'functions::_guard "(|:*)" "function name"' && ret=0 fi ;; esac -- cgit 1.4.1