diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-06-07 20:01:46 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-06-09 21:26:23 +0800 |
commit | d6247a575c12f413e21ff5e7e94a86214246579d (patch) | |
tree | f523118e6d5f262eba282be387ad210978f6fa9a /src/nvim/message.c | |
parent | 3da3cfc864e89a2dca6917183915683373c85af8 (diff) | |
download | rneovim-d6247a575c12f413e21ff5e7e94a86214246579d.tar.gz rneovim-d6247a575c12f413e21ff5e7e94a86214246579d.tar.bz2 rneovim-d6247a575c12f413e21ff5e7e94a86214246579d.zip |
vim-patch:8.2.5066: lcs-leadmultispace
https://github.com/vim/vim/commit/aca12fd89b082dd9cc12ae085a84f1805747bbdf
Diffstat (limited to 'src/nvim/message.c')
-rw-r--r-- | src/nvim/message.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c index 2e57d11fb6..e3f87ed3e6 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -1783,7 +1783,7 @@ void msg_prt_line(char_u *s, int list) } } // find end of leading whitespace - if (curwin->w_p_lcs_chars.lead) { + if (curwin->w_p_lcs_chars.lead || curwin->w_p_lcs_chars.leadmultispace != NULL) { lead = s; while (ascii_iswhite(lead[0])) { lead++; @@ -1873,13 +1873,28 @@ void msg_prt_line(char_u *s, int list) // the same in plain text. attr = HL_ATTR(HLF_0); } else if (c == ' ') { - if (lead != NULL && s <= lead) { + if (list && lead != NULL && s <= lead && in_multispace + && curwin->w_p_lcs_chars.leadmultispace != NULL) { + c = curwin->w_p_lcs_chars.leadmultispace[multispace_pos++]; + if (curwin->w_p_lcs_chars.leadmultispace[multispace_pos] == NUL) { + multispace_pos = 0; + } + attr = HL_ATTR(HLF_0); + } else if (lead != NULL && s <= lead && curwin->w_p_lcs_chars.lead) { c = curwin->w_p_lcs_chars.lead; attr = HL_ATTR(HLF_0); } else if (trail != NULL && s > trail) { c = curwin->w_p_lcs_chars.trail; attr = HL_ATTR(HLF_0); - } else if (list && in_multispace && curwin->w_p_lcs_chars.multispace != NULL) { + } else if (list && lead != NULL && s <= lead && in_multispace + && curwin->w_p_lcs_chars.leadmultispace != NULL) { + c = curwin->w_p_lcs_chars.leadmultispace[multispace_pos++]; + if (curwin->w_p_lcs_chars.leadmultispace[multispace_pos] == NUL) { + multispace_pos = 0; + } + attr = HL_ATTR(HLF_0); + } else if (list && in_multispace + && curwin->w_p_lcs_chars.multispace != NULL) { c = curwin->w_p_lcs_chars.multispace[multispace_pos++]; if (curwin->w_p_lcs_chars.multispace[multispace_pos] == NUL) { multispace_pos = 0; |