On Mar 5, 2013, at 11:57 AM, Bram Moolenaar <[email protected]> wrote:


Hong Xu wrote:

On Tuesday, March 5, 2013 8:16:48 AM UTC-8, Lech Lorens wrote:
Wouldn't it be better to use the existing 'cinoptions' entry jN? It's

related to Java...

This is also what I am hesitating at. But people who need the original 'j' 
option may not need this option (and vice versa) for the use of their languages 
(Javascript?), so I finally splitted them.


BTW, in the past I made a number of modifications to the indenting

code. It was like treading on a mine field (lots of things I could

break). Would you, please, also include a test case for your

functionality so that the next person that modifies get_c_indent()

does not break what you've achieved?

Thanks for the reminder. I have included the test case in the new
attached patch.

Thanks, tests are good.  However, it seems the test passes without your
patch.


I tried without the patch, but they cannot pass on my computer... This is weird.

"static" is already checked for and skipped above the lines you insert.
Without a flag to enable this.  I don't see much of a problem also
skipping the public/private/protected attributes without a flag.


We do need the second check inside the loop, since people may write either:

public static enum
static public enum


Yes, I do agree with you about the flag to enable this. We really don't need any flags to enable this since nothing is messed up with this additional feature. I attached a new patch here, with updated code and an updated test.

Actually, what really matters is the check for "=".  I think it should
be ignored for Java, the "j" flag.

I tried to add a flag here, but it seems the 'J' option is broken in this way (test3 would fail).


Thanks,
Hong

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


diff -r ad7bbe9ea65b src/misc1.c
--- a/src/misc1.c       Tue Feb 26 22:54:11 2013 +0100
+++ b/src/misc1.c       Tue Mar 05 18:59:42 2013 -0800
@@ -5460,8 +5460,34 @@
     if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7]))
        s = cin_skipcomment(s + 7);
 
-    if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
-       s = cin_skipcomment(s + 6);
+    for (;;)
+    {
+       if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6]))
+       {
+           s = cin_skipcomment(s + 6);
+           continue;
+       }
+
+       if (STRNCMP(s, "public", 6) == 0 && !vim_isIDc(s[6]))
+       {
+           s = cin_skipcomment(s + 6);
+           continue;
+       }
+
+       if (STRNCMP(s, "protected", 9) == 0 && !vim_isIDc(s[9]))
+       {
+           s = cin_skipcomment(s + 9);
+           continue;
+       }
+
+       if (STRNCMP(s, "private", 7) == 0 && !vim_isIDc(s[7]))
+       {
+           s = cin_skipcomment(s + 7);
+           continue;
+       }
+
+       break;
+    }
 
     if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4]))
        return TRUE;
diff -r ad7bbe9ea65b src/testdir/test3.in
--- a/src/testdir/test3.in      Tue Feb 26 22:54:11 2013 +0100
+++ b/src/testdir/test3.in      Tue Mar 05 18:59:42 2013 -0800
@@ -318,6 +318,20 @@
 maybe
 } soppie;
 
+public static enum
+{
+yes = 0,
+no,
+maybe
+} soppie;
+
+static private enum
+{
+yes = 0,
+no,
+maybe
+} soppie;
+
 {
        int a,
                b;
diff -r ad7bbe9ea65b src/testdir/test3.ok
--- a/src/testdir/test3.ok      Tue Feb 26 22:54:11 2013 +0100
+++ b/src/testdir/test3.ok      Tue Mar 05 18:59:42 2013 -0800
@@ -306,6 +306,20 @@
        maybe
 } soppie;
 
+public static enum
+{
+       yes = 0,
+       no,
+       maybe
+} soppie;
+
+static private enum
+{
+       yes = 0,
+       no,
+       maybe
+} soppie;
+
 {
        int a,
                b;

Raspunde prin e-mail lui