summaryrefslogtreecommitdiffstats
path: root/src/edit.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2012-06-29 15:04:49 +0200
committerBram Moolenaar <Bram@vim.org>2012-06-29 15:04:49 +0200
commit96b7ca5142d72d2c8e79d15f9c38f41d6657be40 (patch)
tree7df31318ce86d7ba71661310414195877d3fc197 /src/edit.c
parent89f940fcacf0b0996c05537034b37b8c6bb87cf5 (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.c37
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;