1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-01 21:51:40 +02:00
Commit graph

390 commits

Author SHA1 Message Date
Daniel Hahler
ef64b6a929 39040: Completion/…/_git: fix missing backslashes in 39036 2016-08-15 12:06:58 +02:00
Oliver Kiddle
30aafc0b68 39036: update git completion for new options up to git 2.9.2 2016-08-13 01:37:57 +02:00
Daniel Shahaf
faa163cd5f 38964: _git-config: Complete option names present in the config file.
This patch lets
.
    git config x.y.z value
    git config <TAB>
.
complete 'x.y.z', even if x.y.z isn't hardcoded into _git-config.
2016-08-01 08:01:27 +00:00
Daniel Shahaf
b056d8c909 38963: _git-config: Run gettable-options earlier and in all codepaths.
No change to completions; this is preparation for the next commit.
2016-08-01 08:01:26 +00:00
Daniel Shahaf
0782e0a0a6 38961: _git-config: No functional change: rename $git_options_static to $git_options in preparation for the after-next commit. 2016-08-01 08:01:24 +00:00
Daniel Shahaf
9ef02744dd unposted: _git: Clean up superfluous and missing backslashes. 2016-07-31 16:21:33 +00:00
Daniel Shahaf
774f654e36 38962: _git-config: Document more line noise. 2016-07-31 16:21:28 +00:00
Daniel Shahaf
8e06a6a28a unposted (after 38939): _git-rebase: Unbreak. 2016-07-27 14:04:40 +00:00
Oliver Kiddle
4f5cc54560 38939: add missing git options
In particular those for GPG signing a push
2016-07-25 00:06:57 +02:00
Daniel Shahaf
3afaebd913 unposted: _git-grep: Stop leaking the parameter $i. 2016-07-23 18:02:29 +00:00
Daniel Shahaf
db9f0d3b3e unposted (cf. users/21737):: _git-subtree: Record technical debt in comment. 2016-07-17 14:55:35 +00:00
Daniel Shahaf
d09cb7e979 users/21750 (after users/21551): _git-subtree: Tweak -m,-P completions 2016-07-17 14:53:12 +00:00
Jordan Klassen
92d516cfa7 users/21551 (tweaked per users/21560): new git subtree completion 2016-07-05 23:29:40 +02:00
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