aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/message.c
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-06-07 20:01:46 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-06-09 21:26:23 +0800
commitd6247a575c12f413e21ff5e7e94a86214246579d (patch)
treef523118e6d5f262eba282be387ad210978f6fa9a /src/nvim/message.c
parent3da3cfc864e89a2dca6917183915683373c85af8 (diff)
downloadrneovim-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.c21
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;