diff options
author | Oliver Kiddle <opk@zsh.org> | 2023-02-19 15:06:45 +0100 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2023-02-19 17:25:17 +0100 |
commit | 76be800073255eb3cdc1bcdec3159a973f163ad7 (patch) | |
tree | 436c462a30f044fca94b65f97fe3fd7b291b3851 /Completion | |
parent | c83ce203f5c78d3b4da8d59807fcfbcc23be2a21 (diff) | |
download | zsh-76be800073255eb3cdc1bcdec3159a973f163ad7.tar.gz zsh-76be800073255eb3cdc1bcdec3159a973f163ad7.tar.xz zsh-76be800073255eb3cdc1bcdec3159a973f163ad7.zip |
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.
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Unix/Command/_git | 22 |
1 files changed, 14 insertions, 8 deletions
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 |