Mercurial > vim
view runtime/tools/shtags.1 @ 34548:db67c09ccd53 v9.1.0175
patch 9.1.0175: wrong window positions with 'winfix{width,height}'
Commit: https://github.com/vim/vim/commit/5866bc3a0f54115d5982fdc09bdbe4c45069265a
Author: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Date: Wed Mar 13 20:17:24 2024 +0100
patch 9.1.0175: wrong window positions with 'winfix{width,height}'
Problem: winframe functions incorrectly recompute window positions if
the altframe wasn't adjacent to the closed frame, which is
possible if adjacent windows had 'winfix{width,height}' set.
Solution: recompute for windows within the parent of the altframe and
closed frame. Skip this (as before) if the altframe was
top/left, but only if adjacent to the closed frame, as
positions won't change in that case. Also correct the return
value documentation for win_screenpos. (Sean Dewar)
The issue revealed itself after removing the win_comp_pos call below
winframe_restore in win_splitmove. Similarly, wrong positions could result from
windows closed in other tabpages, as win_free_mem uses winframe_remove (at least
until it is entered later, where enter_tabpage calls win_comp_pos).
NOTE: As win_comp_pos handles only curtab, it's possible via other means for
positions in non-current tabpages to be wrong (e.g: after changing 'laststatus',
'showtabline', etc.). Given enter_tabpage recomputes it, maybe it's intentional
as an optimization? Should probably be documented in win_screenpos then, but I
won't address that here.
closes: #14191
Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 13 Mar 2024 20:30:03 +0100 |
parents | bdda48f01a68 |
children |
line wrap: on
line source
.TH shtags 1 "local Utilities" .SH NAME shtags \- Create tags for shell scripts .SH SYNOPSIS .B shtags [\fI-mvw\fP] [\fI-t <file>\fP] [\fI-s <shell>\fP] <files> .SH DESCRIPTION \fBshtags\fP creates a \fBvi(1)\fP tags file for shell scripts - which essentially turns your code into a hypertext document. \fBshtags\fP attempts to create tags for all function and variable definitions, although this is a little difficult, because in most shell languages, variables don't need to be explicitly defined, and as such there is often no distinct "variable definition". If this is the case, \fBshtags\fP simply creates a tag for the first instance of a variable which is being set in a simple way, ie: \fIset x = 5\fP. .SH OPTIONS .IP "\fB-t <file>\fP" Name of tags file to create. (default is 'tags') .IP "\fB-s <shell>\fP" The name of the shell used by the script(s). By default, \fBshtags\fP tries to work out which is the appropriate shell for each file individually by looking at the first line of each file. This won't work however, if the script starts as a bourne shell script and tries to be clever about starting the shell it really wants. .b Currently supported shells are: .RS .IP \fBsh\fP Bourne Shell .IP \fBperl\fP Perl (versions 4 and 5) .IP \fBksh\fP Korn Shell .IP \fBtclsh\fP The TCL shell .IP \fBwish\fP The TK Windowing shell (same as tclsh) .RE .IP \fB-v\fP Include variable definitions (variables mentioned at the start of a line) .IP \fB-V\fP Print version information. .IP \fB-w\fP Suppress "duplicate tag" warning messages. .IP \fB-x\fP Explicitly create a new tags file. Normally new tags are merged with the old tags file. .PP \fBshtags\fP scans the specified files for subroutines and possibly variable definitions, and creates a \fBvi\fP style tags file. .SH FILES .IP \fBtags\fP A tags file contains a sorted list of tags, one tag per line. The format is the same as that used by \fBvi\fP(1) .SH AUTHOR Stephen Riehm .br sr@pc-plus.de .SH "SEE ALSO" ctags(1), etags(1), perl(1), tclsh(1), wish(1), sh(1), ksh(1).