]> granicus.if.org Git - vim/commitdiff
patch 8.2.4737: // in JavaScript string recognized as comment v8.2.4737
authorBram Moolenaar <Bram@vim.org>
Mon, 11 Apr 2022 16:36:37 +0000 (17:36 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 11 Apr 2022 16:36:37 +0000 (17:36 +0100)
Problem:    // in JavaScript string recognized as comment.
Solution:   Only check for linecomment if 'cindent' is set. (closes #10151)

src/change.c
src/testdir/test_textformat.vim
src/version.c

index bc9195be445725086457f0e8efaef5b296840320..259f07664a905646d989766d4b7d32dec439ef01 100644 (file)
@@ -1659,7 +1659,7 @@ open_line(
        lead_len = get_leader_len(saved_line, &lead_flags,
                                                        dir == BACKWARD, TRUE);
 #ifdef FEAT_CINDENT
-       if (lead_len == 0 && do_cindent && dir == FORWARD)
+       if (lead_len == 0 && curbuf->b_p_cin && do_cindent && dir == FORWARD)
        {
            // Check for a line comment after code.
            comment_start = check_linecomment(saved_line);
index 385021396d4cb93515a3f61585e98fbdb73f1171..1d4ade9b7ad4fa52ca1f2b7d842f50714e7a78f9 100644 (file)
@@ -278,12 +278,25 @@ func Test_format_c_comment()
                       //
   END
   call assert_equal(expected, getline(1, '$'))
+
+  " using 'indentexpr' instead of 'cindent' does not repeat a comment
+  setl nocindent indentexpr=2
+  3delete
+  normal 2Gox
+  let expected =<< trim END
+      nop;
+      val = val;      // This is a comment
+        x
+  END
+  call assert_equal(expected, getline(1, '$'))
+  setl cindent indentexpr=
+  3delete
+
   normal 2GO
   let expected =<< trim END
       nop;
 
       val = val;      // This is a comment
-                      //
   END
   call assert_equal(expected, getline(1, '$'))
 
index 737b54b9187e87d03ca6b7dd1b22838e2a18d689..f1199839d84995d850ff300ede35367924db3cda 100644 (file)
@@ -746,6 +746,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4737,
 /**/
     4736,
 /**/