Mercurial > vim
changeset 3984:cd59ba19985a v7.3.747
updated for version 7.3.747
Problem: When characters are concealed text aligned with tabs are no longer
aligned, e.g. at ":help :index".
Solution: Compensate space for tabs for concealed characters. (Dominique
Pelle)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 05 Dec 2012 15:32:30 +0100 |
parents | 78f94fab8bf4 |
children | 384144478876 |
files | src/screen.c src/version.c |
diffstat | 2 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/screen.c +++ b/src/screen.c @@ -4269,7 +4269,20 @@ win_line(wp, lnum, startrow, endrow, noc { /* tab amount depends on current column */ n_extra = (int)wp->w_buffer->b_p_ts - - VCOL_HLC % (int)wp->w_buffer->b_p_ts - 1; + - vcol % (int)wp->w_buffer->b_p_ts - 1; +#ifdef FEAT_CONCEAL + /* Tab alignment should be identical regardless of + * 'conceallevel' value. So tab compensates of all + * previous concealed characters, and thus resets vcol_off + * and boguscols accumulated so far in the line. Note that + * the tab can be longer than 'tabstop' when there + * are concealed characters. */ + n_extra += vcol_off; + vcol -= vcol_off; + vcol_off = 0; + col -= boguscols; + boguscols = 0; +#endif #ifdef FEAT_MBYTE mb_utf8 = FALSE; /* don't draw as UTF-8 */ #endif