diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-06-29 15:04:49 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-06-29 15:04:49 +0200 |
commit | 96b7ca5142d72d2c8e79d15f9c38f41d6657be40 (patch) | |
tree | 7df31318ce86d7ba71661310414195877d3fc197 /src/edit.c | |
parent | 89f940fcacf0b0996c05537034b37b8c6bb87cf5 (diff) |
updated for version 7.3.576v7.3.576
Problem: Formatting of lists inside comments is not right yet.
Solution: Use another solution and add a test. (Tor Perkins)
Diffstat (limited to 'src/edit.c')
-rw-r--r-- | src/edit.c | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/src/edit.c b/src/edit.c index aafd226fa6..78b4d1c245 100644 --- a/src/edit.c +++ b/src/edit.c @@ -6320,14 +6320,15 @@ internal_format(textwidth, second_indent, flags, format_only, c) if (!(flags & INSCHAR_COM_LIST)) { /* - * This section is for numeric lists w/o comments. If comment - * indents are needed with numeric lists (formatoptions=nq), - * then the INSCHAR_COM_LIST flag will cause the corresponding - * OPENLINE_COM_LIST flag to be passed through to open_line() - * (as seen above)... + * This section is for auto-wrap of numeric lists. When not + * in insert mode (i.e. format_lines()), the INSCHAR_COM_LIST + * flag will be set and open_line() will handle it (as seen + * above). The code here (and in get_number_indent()) will + * recognize comments if needed... */ if (second_indent < 0 && has_format_option(FO_Q_NUMBER)) - second_indent = get_number_indent(curwin->w_cursor.lnum -1); + second_indent = + get_number_indent(curwin->w_cursor.lnum - 1); if (second_indent >= 0) { #ifdef FEAT_VREPLACE @@ -6336,7 +6337,31 @@ internal_format(textwidth, second_indent, flags, format_only, c) FALSE, NUL, TRUE); else #endif +#ifdef FEAT_COMMENTS + if (leader_len > 0 && second_indent - leader_len > 0) + { + int i; + int padding = second_indent - leader_len; + + /* We started at the first_line of a numbered list + * that has a comment. the open_line() function has + * inserted the proper comment leader and positioned + * the cursor at the end of the split line. Now we + * add the additional whitespace needed after the + * comment leader for the numbered list. */ + for (i = 0; i < padding; i++) + { + ins_str((char_u *)" "); + changed_bytes(curwin->w_cursor.lnum, leader_len); + } + } + else + { +#endif (void)set_indent(second_indent, SIN_CHANGED); +#ifdef FEAT_COMMENTS + } +#endif } } first_line = FALSE; |