diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/indent.c | 12 | ||||
-rw-r--r-- | src/nvim/options.lua | 4 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/nvim/indent.c b/src/nvim/indent.c index 895d0d9f37..b7e3842aad 100644 --- a/src/nvim/indent.c +++ b/src/nvim/indent.c @@ -891,7 +891,17 @@ int get_breakindent_win(win_T *wp, char *line) if (wp->w_briopt_list > 0) { prev_list += wp->w_briopt_list; } else { - prev_indent = (int)(*regmatch.endp - *regmatch.startp); + char *ptr = *regmatch.startp; + char *end_ptr = *regmatch.endp; + int indent = 0; + // Compute the width of the matched text. + // Use win_chartabsize() so that TAB size is correct, + // while wrapping is ignored. + while (ptr < end_ptr) { + indent += win_chartabsize(wp, ptr, indent); + MB_PTR_ADV(ptr); + } + prev_indent = indent; } } vim_regfree(regmatch.regprog); diff --git a/src/nvim/options.lua b/src/nvim/options.lua index 1c17b0fc9f..71b0d26b49 100644 --- a/src/nvim/options.lua +++ b/src/nvim/options.lua @@ -761,9 +761,9 @@ return { list:{n} Adds an additional indent for lines that match a numbered or bulleted list (using the 'formatlistpat' setting). - list:-1 Uses the length of a match with 'formatlistpat' - for indentation. (default: 0) + list:-1 Uses the width of a match with 'formatlistpat' for + indentation. column:{n} Indent at column {n}. Will overrule the other sub-options. Note: an additional indent may be added for the 'showbreak' setting. |