Mercurial > vim
diff src/edit.c @ 3632:7e3fedfc3d08 v7.3.576
updated for version 7.3.576
Problem: Formatting of lists inside comments is not right yet.
Solution: Use another solution and add a test. (Tor Perkins)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Fri, 29 Jun 2012 15:04:49 +0200 |
parents | 18c6b1752d0b |
children | d258a0c5c38a |
line wrap: on
line diff
--- a/src/edit.c +++ b/src/edit.c @@ -6320,14 +6320,15 @@ internal_format(textwidth, second_indent 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 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;