From: Oliver Kiddle <opk@zsh.org>
To: Zsh workers <zsh-workers@zsh.org>
Subject: PATCH: complete only modified files with git add -u
Date: Sat, 18 Feb 2023 01:23:30 +0100 [thread overview]
Message-ID: <91356-1676679810.150767@Ouz-.oJ2E.9I0C> (raw)
This makes git completion skip new files after git add -u. In general,
the option makes it easy to bulk update files without adding any new
files but it is the sort of option that can be useful with completion
specifically to limit the matches.
I've also included a number of very minor _git updates that have been
sitting in my tree for some while, there's a typo fix, a missing =, a
prompt for function name after git blame -L and git blame --force has
gained a short -f form.
Oliver
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
reply other threads:[~2023-02-18 0:23 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=91356-1676679810.150767@Ouz-.oJ2E.9I0C \
--to=opk@zsh.org \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).