1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-04 10:41:11 +02:00
Commit graph

377 commits

Author SHA1 Message Date
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