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)
diff --git a/src/edit.c b/src/edit.c
index aafd226..78b4d1c 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -6320,14 +6320,15 @@
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 @@
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;