Daniel Shahaf
3a034838b4
38760: _git-config: Stop trying to execute the empty string command name upon completing values for an unknown option.
...
For example:
% git config x.y.z <TAB>
+_git-config:834> case x.y.z (alias.*)
+_git-config:834> case x.y.z (remotes.*)
+_git-config:860> local z=$'\C-@'
+_git-config:861> declare -a parts
+_git-config:862> parts=( '' )
+_git-config:863> (( 1 < 2 ))
+_git-config:863> [[ x.y.z == [^.]##.*.[^.]## ]]
+_git-config:864> parts=( '' )
+_git-config:866> (( 1 > 0 ))
+_git-config:867> case (-\>*)
+_git-config:867> case (*)
+_git-config:1197> declare -a action
+_git-config:1198> _description values expl ''
+_git-config:1199> eval 'action=()'
+(eval):1> action=( )
+_git-config:1200> '' -J values
_git-config:1200: permission denied:
+_git-config:1206> return ret
2016-06-27 00:21:02 +00:00
Daniel Shahaf
3bd8abc40b
unposted: _git-config: Document some line noise.
2016-06-25 16:33:33 +00:00
Daniel Shahaf
59bf331d27
unposted: _git-config: Fix syntax error in 'tag.sort' completion.
2016-06-25 16:32:34 +00:00
Daniel Shahaf
aa160fc8e9
38651: _git: Escape parameter arguments to _call_program.
...
Fixes 'git cat-file blob HEAD^:<TAB>' and a few other cases.
2016-06-13 08:53:17 +00:00
Daniel Shahaf
ec7088296b
38665: _git: config option completion: Quote properly.
2016-06-13 08:53:14 +00:00
Daniel Shahaf
0516736eae
38624: _git: Optimize the last commit's __git_recent_branches__names as suggested by Matthew.
2016-06-07 22:53:51 +00:00
Daniel Shahaf
6e834587eb
38592 (plus tweak): _git: New recent branches completion, unused. (Joint with Nils Luxton)
2016-06-07 22:53:46 +00:00
Daniel Shahaf
713eaa055d
38576: _git: Also detect _git-${thirdparty} functions in $fpath that are symlinks.
2016-06-03 02:21:54 +00:00
Russell Currey
058d957ce5
38393: _git: Fix typo in completion of '--minimal'
...
Signed-off-by: Russell Currey <ruscur@russell.cc>
2016-05-03 11:26:54 +00:00
Daniel Shahaf
276a690a2e
_git: Complete fetchy refspecs correctly.
2016-05-01 01:52:29 +00:00
Daniel Shahaf
fe21e49a6d
_git: Bifurcate __git_ref_specs.
...
No functional change, except for completion of 'git bundle' and 'git config
branch.*.merge'; this is a required groundwork for future patches.
2016-05-01 01:52:29 +00:00
Daniel Shahaf
c57d8dfcaa
_git: Fix an apparent typo in __git_heads().
...
I couldn't reproduce different behaviour with and without this patch, although
the called command's output differs.
2016-05-01 01:52:28 +00:00
Daniel Shahaf
3e26848ef4
_git: Offer alternatives properly.
2016-05-01 01:52:28 +00:00
Daniel Shahaf
2979122d2d
_git-bundle: Complete required file argument to 'git bundle' correctly.
2016-05-01 01:52:28 +00:00
Daniel Shahaf
442d702bbc
38316: _git-rebase: Complete any committish for the second argument
2016-04-23 21:28:21 +00:00
Daniel Shahaf
4df62e32fc
38255: _git: Fix argument pastedness.
...
Found by searching for /-\w\>.*:/.
This covers short options only, from the top of file through _git-tag().
2016-04-09 03:35:14 +00:00
Daniel Shahaf
9f70404714
38182: _git: Invoke reflog completion from the 'complete commit objects' codepath.
...
The reflog will only be used if the user has typed as "@" by hand.
2016-03-21 16:12:15 +00:00
Daniel Shahaf
ce4c9eafc4
38181: _git reflog: Complete '@{N}' instead of 'HEAD@{N}'.
...
The «HEAD@{...}» syntax is no longer completed, since it's not easily possible
to support both syntaxes (workers/34768).
2016-03-21 16:12:13 +00:00
Daniel Shahaf
67136df0bf
38180: _git: Improve reflog completion.
...
Currently, only used by «git reflog delete <TAB>».
2016-03-21 16:12:10 +00:00
m0viefreak
a1f45b3346
38151: _git: fix tag name of remote branches
2016-03-15 00:07:18 +00:00
m0viefreak
666a7f5845
38148: _git: reflog: complete references next to commands
...
'git reflog show' is the default subcommand, so
git reflog <tab>
should complete subcommands and references.
2016-03-15 00:07:15 +00:00
Daniel Shahaf
527badc237
38129: _git: Fix __git_ignore_line's treatment of shell and pattern metacaracters.
...
Builds upon a patch by Jun T.
Also upgrade/fix __git_pattern_escape.
2016-03-11 22:19:04 +00:00
Daniel Shahaf
98fcdb0861
38128: _git: Fix completion of diffs against the index when treeish isn't shell-safe
...
This affects 'git diff --cached -- <TAB>' and 'git reset $treeish <TAB>'.
2016-03-10 23:18:36 +00:00
Daniel Shahaf
be41c522f2
38123 (after 38074): _git reset $treeish: complete only staged files
2016-03-10 23:18:15 +00:00
Daniel Shahaf
33bd9136d6
38120: _git: Document the internal helper function __git_ignore_line.
2016-03-09 14:08:49 +00:00
Jun-ichi Takimoto
983060d5d1
38074: _git reset HEAD: complete only staged files
2016-03-08 21:21:44 +09:00
Daniel Shahaf
8a59aed696
37924: Completion: _git: Complete files for 'check-ignore'
...
Also, don't leak the parameter 'ret'; the leak was theoretical because
the caller immediately wrote to that parameter.
2016-02-09 03:41:46 +00:00
Daniel Shahaf
295133d741
37703: Completion: git: Also complete sendmail commands for send-email's configuration. (after 37666)
2016-01-23 23:50:04 +00:00
Daniel Shahaf
3eb4d9c2e2
37666: Completion: git: 'send-email --smtp-server=' takes absolute path to sendmail.
2016-01-20 07:49:30 +00:00
Daniel Shahaf
c6fc6f80cd
37665: Completion: New helper _absolute_command_paths.
2016-01-20 07:49:29 +00:00
Daniel Shahaf
e14540ac02
37150: _git: Autocomplete .. for commit ranges
...
This patch makes three changes:
- Enable 'git diff o/m<TAB>' to complete to 'origin/master..' with the
".." being autoremovable.
This is implemented by the first hunk. That hunk is a functional
subset of Oliver's users/20705, however, the latter hasn't been
committed.
- Make typing "^" remove the "..", in light of the syntax "foo^..bar".
- Make typing "." _not_ remove the ".." but simply append it, since
"foo...bar" is a valid and useful syntax.
2015-12-05 10:15:40 +00:00
Daniel Shahaf
6a3de994af
36957: _git: Apply matchspecs to filename completion such as 'git log f/b<TAB>' → 'foo/bar.txt's
...
This patch makes 'git log S/e<TAB>' expand to Src/exec.c. The incumbent
code would run 'git ls-tree S/' and find no matches.
2015-12-05 10:15:39 +00:00
Daniel Shahaf
d554f31bcb
37149: _git: Complete 'bisect/bad' ref
2015-11-20 03:39:34 +00:00
Daniel Shahaf
afc4d41652
37129: _git: Complete 'commit -p'
2015-11-17 23:31:26 +00:00
Barton E. Schaefer
9ce000db22
37115: update for changes in ${(P)...} evaluation.
2015-11-14 21:22:17 -08:00
Daniel Shahaf
6198f7ffba
37031: _git-merge: Exclude ancestors of HEAD from recent commit completion
...
As done for _git-cherry-pick in a428c6b62c
(36328 + 36340).
2015-11-13 20:17:51 +00:00
Peter Stephenson
20153c573e
37062: tentative mechanism for git commit descriptions.
...
Mechanism for forcing completion system into verbose mode is subject
to change.
2015-11-04 17:37:17 +00:00
Daniel Shahaf
0e510f0c35
37032: Temporarily revert 36959.
2015-10-31 13:03:54 +00:00
Daniel Shahaf
8b51584246
36962: _git: Fix completion of RHS of refspecs.
...
Before this patch, 'git push $remote :<TAB>' completed branch names (as though
by `git branch -a`), instead of completing remote branch names sans the
${remote}/ prefix.
2015-10-25 18:52:29 +00:00
Daniel Shahaf
cc19bb96b9
36964: _git: Complete remotes branch names with slashes correctly.
...
For example, 'git push remote HEAD:foo/bar' creates such branches.
2015-10-25 18:52:13 +00:00
Daniel Shahaf
b4f7482e44
36960: _git: Enable slash matcher for more branch and tag completions, include 'git branch <TAB>' and 'git tag <TAB>'.
2015-10-25 18:47:35 +00:00
Daniel Shahaf
f890d442e2
36959: _git: Offer @~$n as completion of recent commits.
...
Suggested-by: Oliver Kiddle (users/20705)
2015-10-25 18:47:26 +00:00
Daniel Shahaf
17af119089
36958: _git: Fix recent commit completion descriptions.
...
The uniquifiers 'HEAD~$n' were incorrect when a recent commit was the second
parent of a merge commit. Detect that case and print something correct
instead.
2015-10-25 18:47:11 +00:00
Daniel Shahaf
f8b2c13c97
unposted: _git: Fix 'commit object name' completion messages.
...
Offer the "this alternative is still valid, but I don't know to offer
completions for it" for hash completion but not for recent object completion;
the former is protected by a _guard and the latter incorrectly appeared also in
cases such as 'git log a/b<TAB>' which were not the start of a gitrevisions(7)
expression.
2015-10-25 18:39:34 +00:00
Daniel Shahaf
98875bcb05
36900: _git: stash names completion: Display log messages
...
The "$@" argument to compadd is removed because (I think) it contains a -J,
which conflicts with the -V.
Joint with Daniel Hahler.
2015-10-20 14:30:10 +00:00
Peter Stephenson
9064483b6c
36722: allow git range to complete after ^.
...
Take account of backslash quoting.
2015-10-01 09:47:15 +01:00
James Clarke
bddd99d98a
36441: _git: Fixed typo in --author-date-order description
2015-09-07 21:11:10 +00:00
Daniel Shahaf
6e825e7b25
36353: _git: Unbreak after previous.
2015-09-01 04:37:39 +00:00
Mateusz Karbowy
a428c6b62c
36328 + 36340: _git-cherry-pick: Complete other branches only
2015-08-30 22:51:15 +00:00
Daniel Shahaf
63b1dcd284
36304: _git-cat-file: Fix regression in 36237
...
This broke 'git cat-file blob origin:Etc/<TAB>'.
2015-08-27 23:14:57 +00:00
Daniel Shahaf
fdf48d84fa
36277: _git: Updated for git-clone 2.4.5.
2015-08-24 11:23:44 +00:00
Daniel Shahaf
a69994ede1
36247: __git_objects: Complete HEAD:./foo correctly in worktree subdir
2015-08-19 23:29:50 +00:00
Daniel Shahaf
663fa4092f
36237: __git_objects: Complete HEAD:foo correctly in worktree subdir
2015-08-19 23:29:49 +00:00
Daniel Shahaf
a4c41fff12
36236: _git-log: Complete multiple revspecs
...
e.g., git log origin/master origin/foo origin/bar
2015-08-19 23:28:12 +00:00
Daniel Shahaf
d70e7149df
36236: _git-log: complete 'git rm'd files
2015-08-19 23:28:11 +00:00
Oliver Kiddle
ea5d100643
36148: _git-log: Complete flags after positional argument
2015-08-19 23:27:40 +00:00
Wieland Hoffmann
8e0b5e0e00
Wieland Hoffmann: 36123: protect against word splitting in __git_is_committish_range
2015-08-13 15:53:12 +02:00
Oliver Kiddle
cf77e28a3f
36127: assorted minor completion function changes
2015-08-12 18:06:03 +02:00
Mikael Magnusson
8815500f95
36116: _git: various fixes
...
Add = to git checkout --conflict= completion
fix transposed [-
git push remote argument is not optional
can use shorter syntax for a check
2015-08-12 17:54:07 +02:00
Daniel Hahler
d90f92194f
35970: completion: fix typos in _git and _brace_parameter
2015-08-02 17:58:12 +02:00
Daniel Hahler
8024de798d
35779: completion: _git-config: remove extraneous "local expl"
...
It is defined at the beginning of the function already, and results in
the output of `expl=''` when completing after `git config
branch.local.pushremote ` etc.
2015-07-13 15:05:52 +02:00
Oliver Kiddle
deb2ec7f17
35510: use consistent formatting for git subcommands
2015-06-18 23:50:59 +02:00
Oliver Kiddle
8ebb4e65a9
35504: complete % placeholders for git log --format
2015-06-18 23:47:40 +02:00
Daniel Hahler
e8cf611879
35216: _git-checkout: do not call __git_commits twice
...
This makes `branch_arg` empty by default, to be used only for
__git_remote_branch_names.
`branches::__git_revisions` was used here, but that's the same as
tree_ish_arg='tree-ishs::__git_tree_ishs' - both call __git_commits.
Only tree_ish_arg will call __git-commits now.
2015-06-08 00:35:01 +02:00
Daniel Hahler
da603d0a00
35098: completion: git: provide --amend also with "message" group
...
Especially during a git rebase, you would use `git commit -m foo
--amend`.
2015-05-29 01:56:18 +02:00
Oliver Kiddle
a711b2abef
35315: replace inappropriate uses of _path_commands
2015-05-28 22:45:34 +02:00
Daniel Hahler
068558616a
35261: completion: git: __git_recent_commits: local ret
...
Without this, `ret` will be set to 1 with `git diff --ex<tab>` and
result in duplicate entries:
% git diff --ex<tab>
-- option --
--exit-code -- report exit code 1 if differences, 0 otherwise
--exit-code -- report exit code 1 if differences, 0 otherwise
--ext-diff -- allow external diff helper to be executed
--ext-diff -- allow external diff helper to be executed
--no-ext-diff -- disallow external diff helper to be executed
-- recent commit object name --
2015-05-22 01:12:10 +02:00
Daniel Shahaf
c174947040
35224: completion: git: Add fast-export --signed-tags=warn-strip
2015-05-19 20:35:14 +00:00
Daniel Hahler
a0d269460a
35217: add missing changelog entry; use "-O expl" with _alternative
2015-05-19 10:43:24 +02:00
Daniel Hahler
7408f91d31
35217: completion: git: send-email: complete (recent) commits
...
This adds `__git_commit_objects_prefer_recent` as alternative for
git-send-email's completion.
2015-05-19 10:28:51 +02:00
Daniel Hahler
8f6823b710
__git_commit_objects: do not use _guard, but only a pattern
...
With using `_guard` there like it's been done, the completion could not
be selected, probably because of the call to `_message` therein.
This changes it to use only the logic/check from `_guard` that we want
here.
2015-05-19 08:50:42 +02:00
Daniel Hahler
ed3e5f521d
Completion/Unix/Command/_git: remove -2 with __git_recent_commits
...
Remove "-2" for _describe in __git_recent_commits.
This fixes the duplicate entries issue, because __git_recent_commits
gets called twice for _git-checkout (for __git_revisions and
__git_tree_ishs):
1. __git_commit_objects_prefer_recent _alternative __git_commits
__git_revisions _alternative _git-checkout
2. __git_commit_objects_prefer_recent _alternative __git_commits
__git_tree_ishs _alternative _git-checkout
2015-05-19 07:49:48 +02:00
Daniel Hahler
d0057538d3
35204: fix broken __git_recent_commits from previous commit
...
This fixes 1e7bb4a
: newlines need to be kept (from the "%d" part).
2015-05-19 06:38:43 +02:00
Daniel Hahler
1e7bb4a8f8
35164: fix __git_commit_objects/__git_recent_commits
...
$pipestatus for `: foo` is 0 always.
Without this, "git checkout" in a non-git directory would complete " ",
but not result in a note/error about not being in a git dir.
2015-05-19 05:42:21 +02:00
Daniel Shahaf
6bfe6fd84b
users/20222: completion: git: Add matchspec for heads
...
Allows 'git checkout o/m<TAB>' to complete 'origin/master'.
Moreover, '/x<TAB>' would complete 'foo/bar/xyzzy/baz', since the matchspec
uses not '*' but '**'.
2015-05-19 01:55:15 +00:00
Daniel Shahaf
34a1489f43
35105: completion: git: add distance_from_head to __git_recent_commits
...
This adds the "HEAD~15" gitrevisions(7) identifier of the commit to the
description, which also uniquifies, isn't redundant, and may be easier
to type.
Ref: zsh-workers/34820 (http://www.zsh.org/mla/workers/2015/msg00744.html )
2015-05-18 02:48:03 +02:00
Daniel Hahler
733db1b411
35106: completion: git: unique name for __git_recent_commits
...
This helps to distinguish it from __git_commit_objects.
2015-05-18 02:48:03 +02:00
Daniel Hahler
a0b221e7c5
35103: completion: git: add %cr to commit objects (all and recent)
2015-05-18 02:48:03 +02:00
Daniel Hahler
94c6b32fe7
35104: completion: git: __git_commit_objects: query 1000 commits
...
Also, `--all` and `--reflog` is used to get all commits.
It adds the _guard in front, so only non-empty values will come here.
Also, __git_commit_objects_prefer_recent will only call it, if there are
no matching recent commits.
2015-05-18 02:48:03 +02:00
Daniel Hahler
454f079852
35101: completion: git: add __git_commit_objects_prefer_recent
...
This is used with __git_commits then, and is meant to only call
__git_recent_commits, if there are matches.
2015-05-18 02:48:03 +02:00
Daniel Hahler
1d5b225498
35100: __git_recent_commits: massage ' ->*' from heads
...
Handle " -> master, origin/master" in decorated git-log output, and add
it as separate entries.
2015-05-18 02:48:03 +02:00
Daniel Hahler
895408bb81
completion: git: add missing return to __git_recent_commits
2015-05-17 19:54:15 +02:00
Daniel Shahaf
7990cf983e
35161: completion: git: Fix typo in 35061
2015-05-16 22:57:22 +00:00
Oliver Kiddle
32a448dc25
users/20219: fix completion for git options
2015-05-15 18:04:40 +02:00
Daniel Hahler
968c5ceaa7
35062: __git_setup_revision_options includes __git_setup_diff_options
2015-05-14 19:03:21 +02:00
Daniel Hahler
a1c1f6828c
35061: add __git_setup_diff_stage_options and use it with _git-diff-files and _git-diff explicitly
2015-05-14 19:00:32 +02:00
Daniel Hahler
fec4e7243b
35016: introduce new pretty formats %g[sdD] for reflog information
2015-05-14 18:56:23 +02:00
Daniel Hahler
b884853756
35060 + 35072: completion: git: split __git_heads into local and remote
...
It is useful to have this distinction visually.
This also uses `--format=%(refname:short)` directly with `git
for-each-ref`.
2015-05-12 00:59:07 +00:00
Daniel Shahaf
122bb9a125
34886: completion: git: Complete rebase --exec argument
2015-04-13 21:01:45 +00:00
Daniel Shahaf
7793ebcb71
34885: completion: git: Sort "commit object" completions most recent first
2015-04-13 20:59:19 +00:00
Daniel Shahaf
7929dd8cba
34885: completion: git: Fix another instance of the 34671 bug fixed in 34814
2015-04-13 20:59:02 +00:00
Daniel Hahler
ca8edaba92
34748: completion: git: update list of builtintools
2015-04-10 16:24:42 +00:00
Daniel Shahaf
727533088a
34814: completion: git: Fix bug introduced by 236da69
...
Based on a patch by Daniel Hahler <git@thequod.de>.
2015-04-01 09:44:26 +00:00
Daniel Hahler
0b79922edb
34762: completion: git: add short option for '--dir-diff' (_git-difftool)
2015-03-29 05:52:44 +00:00
Daniel Shahaf
e176eff554
34739: git completion: Fix regression in ce80a92
...
This restores the message when completing a commit object name that
isn't one of the most recent 20 commits. e.g., 'git checkout deadbeef<TAB>'.
2015-03-19 06:51:32 +00:00
Daniel Shahaf
236da69842
34671 plus tweaks: Add -1 -2 -J -V -x to _describe, use them to sort 'git --fixup' hash completions
2015-03-16 09:27:06 +00:00
Daniel Shahaf
097dedf9ab
34671: git completion: only offer recent commits' tags/heads for --fixup
2015-03-16 09:25:39 +00:00
Daniel Hahler
ce80a925d6
34638 with tweaks: git completion: complete commit hashes and --fixup
2015-03-07 03:56:48 +00:00
Daniel Hahler
7d15b9a9cb
34468: completion: git: stash: handle 'save' being the default
...
"git stash" should complete arguments for "git stash save", but without
the message part.
2015-02-08 20:27:26 +01:00
Daniel Hahler
8f403ab25c
34467: completion: git: minor doc fixes
...
I am not sure about the deprecation of user-commands, but from other
places in the doc and commit history this deprecation was meant to be
reverted?!
2015-02-08 20:27:25 +01:00