mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-12-29 16:25:35 +01:00
48435 (tweaked): vcs_info docs: applied-string/unapplied-string: Correct an omission in the documentation and add an example.
The example code is a reduced version of my function from workers/47519, with one bug fixed. (In workers/47519, if $1 doesn't contain spaces - which is the case under hg mq - then $H and $s will be set to the same value.) Tweaked: Extended the contrib.yo hunk with details about mq.
This commit is contained in:
parent
c40a63ab67
commit
b110d6d5af
3 changed files with 67 additions and 3 deletions
|
@ -1,5 +1,9 @@
|
|||
2021-04-20 Daniel Shahaf <d.s@daniel.shahaf.name>
|
||||
|
||||
* 48435 (tweaked): Doc/Zsh/contrib.yo, Misc/vcs_info-examples:
|
||||
vcs_info docs: applied-string/unapplied-string: Correct an
|
||||
omission in the documentation and add an example.
|
||||
|
||||
* 48528/0002: Misc/vcs_info-examples: vcs_info git docs:
|
||||
ahead/behind commits: Reduce the number of forks
|
||||
|
||||
|
|
|
@ -1652,10 +1652,17 @@ Called in the tt(git) (with tt(stgit) or during rebase or merge), and tt(hg)
|
|||
is generated; the tt(use-quilt) zstyle must be true for tt(quilt) (the tt(mq)
|
||||
and tt(stgit) backends are active by default).
|
||||
|
||||
This hook gets the names of all applied patches which tt(vcs_info) collected
|
||||
so far in the opposite order, which means that the first argument is the
|
||||
The arguments to this hook describe applied patches
|
||||
in the opposite order, which means that the first argument is the
|
||||
top-most patch and so forth.
|
||||
|
||||
When the patches' log messages can be extracted, those are embedded
|
||||
within each argument after a space, so each argument is of the form
|
||||
`var(patch-name) var(first line of the log message)', where var(patch-name)
|
||||
contains no whitespace. The tt(mq) backend passes arguments of
|
||||
the form `var(patch name)', with possible embedded spaces, but without
|
||||
extracting the patch's log message.
|
||||
|
||||
When setting tt(ret) to non-zero, the string in
|
||||
tt(${hook_com[applied-string]}) will be
|
||||
available as tt(%p) in the tt(patch-format) and tt(nopatch-format) styles.
|
||||
|
@ -1669,9 +1676,11 @@ tt(mq)) backend and in tt(quilt) support when the tt(unapplied-string) is
|
|||
generated; the tt(get-unapplied) style must be true.
|
||||
|
||||
This hook gets the names of all unapplied patches which tt(vcs_info)
|
||||
collected so far in order, which means that the first argument is
|
||||
in order, which means that the first argument is
|
||||
the patch next-in-line to be applied and so forth.
|
||||
|
||||
The format of each argument is as for tt(gen-applied-string), above.
|
||||
|
||||
When setting tt(ret) to non-zero, the string in
|
||||
tt(${hook_com[unapplied-string]}) will be available as tt(%u) in the
|
||||
tt(patch-format) and tt(nopatch-format) styles.
|
||||
|
|
|
@ -285,6 +285,54 @@ function +vi-hg-branchhead() {
|
|||
}
|
||||
|
||||
|
||||
### Show information about patch series
|
||||
# This is used with with hg mq, quilt, and git rebases and conflicts.
|
||||
#
|
||||
# All these cases have a notion of a "series of patches/commits" that is being
|
||||
# applied. The following shows the information about the most recent patch to
|
||||
# have been applied:
|
||||
zstyle ':vcs_info:*+gen-applied-string:*' hooks gen-applied-string
|
||||
function +vi-gen-applied-string() {
|
||||
# Separate the patch id from the patch log message.
|
||||
if [[ $1 == *\ * ]]; then
|
||||
local patch_name_or_filename="${1%% *}"
|
||||
local patch_description="${1#* }"
|
||||
else
|
||||
local patch_name_or_filename="$1"
|
||||
local patch_description=""
|
||||
fi
|
||||
|
||||
# Apply escaping; see `Oddities' in the manual.
|
||||
patch_name_or_filename=${patch_name_or_filename//'%'/%%}
|
||||
patch_description=${patch_description//'%'/%%}
|
||||
|
||||
# Apply different colouring to the patch description.
|
||||
if [[ -n ${patch_description} ]]; then
|
||||
patch_description="%F{yellow}${patch_description}%f"
|
||||
fi
|
||||
|
||||
# Re-assemble $1, escaped and coloured.
|
||||
hook_com[applied-string]="${patch_name_or_filename} ${patch_description}"
|
||||
ret=1
|
||||
}
|
||||
# The value of hook_com[applied-string] is incorporated into the %m expando
|
||||
# (see the 'patch-format' style for details), which is not included in the
|
||||
# 'formats' and 'actionformats' style by default, so to actually use this,
|
||||
# you'll need to add %m (or %Q under quilt in add-on mode) to your 'formats'
|
||||
# and 'actionformats' styles, as in:
|
||||
#
|
||||
# zstyle ':vcs_info:*' actionformats ' (%s)-[%b|%a]%u%c- %m'
|
||||
# zstyle ':vcs_info:*' formats ' (%s)-[%b]%u%c- %m'
|
||||
#
|
||||
# Or you could add it as a new word, as in:
|
||||
#
|
||||
# zstyle ':vcs_info:*' actionformats ' (%s)-[%b|%a]%u%c-' '%m'
|
||||
# zstyle ':vcs_info:*' formats ' (%s)-[%b]%u%c-' '%m'
|
||||
#
|
||||
# In the latter case, you will need to arrange to print ${vcs_info_msg_1_} in
|
||||
# addition to ${vcs_info_msg_0_}; see the top of this file for details.
|
||||
|
||||
|
||||
### Run vcs_info selectively to increase speed in large repos ################
|
||||
|
||||
# The following example shows a possible setup for vcs_info which displays
|
||||
|
@ -547,6 +595,9 @@ function +vi-set-quilt-patches() {
|
|||
# This would take care of all the dedicated-patches-directory-in-${HOME}
|
||||
# from earlier examples, too.
|
||||
|
||||
# Finally, the "Show information about patch series" example above this section
|
||||
# may also be useful.
|
||||
|
||||
|
||||
### Using vcs_info from CVS ##################################################
|
||||
|
||||
|
|
Loading…
Reference in a new issue