Loading ...
Sorry, an error occurred while loading the content.

[PATCH] add 'cinoption' "E" to correctly indent enum for Java code

Expand Messages
  • hong@...
    Hi All, The attachment is a patch to add an cinoption to correctly indent enum for Java code. Currently enum for C could be indent correctly: enum { MON,
    Message 1 of 9 , Mar 5, 2013
    • 0 Attachment
      Hi All,

      The attachment is a patch to add an 'cinoption' to correctly indent enum for Java code.

      Currently enum for C could be indent correctly:

      enum {
      MON,
      TUE,
      WED
      };

      But for Java code, the indentation would be incorrect:

      public enum {
      MON,
      TUE,
      }

      The attachment adds an option 'E' to 'cinoptions' to solve this problem. The patch also includes the modification to the help file.

      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 vim_dev+unsubscribe@....
      For more options, visit https://groups.google.com/groups/opt_out.
    • Lech Lorens
      Wouldn t it be better to use the existing cinoptions entry jN? It s related to Java... BTW, in the past I made a number of modifications to the indenting
      Message 2 of 9 , Mar 5, 2013
      • 0 Attachment
        Wouldn't it be better to use the existing 'cinoptions' entry jN? It's
        related to Java...

        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!

        --
        Cheers,
        Lech

        --
        --
        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 vim_dev+unsubscribe@....
        For more options, visit https://groups.google.com/groups/opt_out.
      • hong@...
        ... 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
        Message 3 of 9 , Mar 5, 2013
        • 0 Attachment
          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,
          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 vim_dev+unsubscribe@....
          For more options, visit https://groups.google.com/groups/opt_out.
        • Gary Johnson
          ... I can t imagine anyone choosing to have their code formatted as in this example from you: public enum { MON, TUE, } Regards, Gary -- -- You received this
          Message 4 of 9 , Mar 5, 2013
          • 0 Attachment
            On 2013-03-05, Hong 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.

            I can't imagine anyone choosing to have their code formatted as in
            this example from you:

            public enum {
            MON,
            TUE,
            }

            Regards,
            Gary

            --
            --
            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 vim_dev+unsubscribe@....
            For more options, visit https://groups.google.com/groups/opt_out.
          • Hong Xu
            ... Hi Gary, What I mean is they don t need to have this feature. The original use of j can also be enabled by default, but it isn t, right? But I do NOT
            Message 5 of 9 , Mar 5, 2013
            • 0 Attachment
              On 3/5/13 10:15 AM, Gary Johnson wrote:
              > On 2013-03-05, Hong 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.
              >
              > I can't imagine anyone choosing to have their code formatted as in
              > this example from you:
              >
              > public enum {
              > MON,
              > TUE,
              > }
              >

              Hi Gary,

              What I mean is they don't need to have this feature. The original use of
              'j' can also be enabled by default, but it isn't, right?

              But I do NOT persist on creating a new option. We can finally figure out
              what the best solution is.

              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 vim_dev+unsubscribe@....
              For more options, visit https://groups.google.com/groups/opt_out.
            • Gary Johnson
              ... I see your point, except that I _think_ the reason for not enabling j by default was because it would mess up C formatting. That is just speculation,
              Message 6 of 9 , Mar 5, 2013
              • 0 Attachment
                On 2013-03-05, Hong Xu wrote:
                > On 3/5/13 10:15 AM, Gary Johnson wrote:
                > >On 2013-03-05, Hong 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.
                > >
                > >I can't imagine anyone choosing to have their code formatted as in
                > >this example from you:
                > >
                > > public enum {
                > > MON,
                > > TUE,
                > > }
                > >
                >
                > Hi Gary,
                >
                > What I mean is they don't need to have this feature. The original use
                > of 'j' can also be enabled by default, but it isn't, right?

                I see your point, except that I _think_ the reason for not enabling
                'j' by default was because it would mess up C formatting. That is
                just speculation, though.

                If the purpose of the 'j' flag is to "Indent Java anonymous classes
                correctly," that suggests to me that it acts as a clue to the
                C-indenter that this is not C but Java and that it should do what's
                right for Java. If that's true, then I think your fix should be
                enabled by this same flag.

                > But I do NOT persist on creating a new option. We can finally figure
                > out what the best solution is.

                Agreed. I'm just looking at this from the perspective of keeping
                Vim's options uncluttered. I hope someone more experienced with
                Java and the C-indenter can chime in here.

                Regards,
                Gary

                --
                --
                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 vim_dev+unsubscribe@....
                For more options, visit https://groups.google.com/groups/opt_out.
              • Bram Moolenaar
                ... Thanks, tests are good. However, it seems the test passes without your patch. static is already checked for and skipped above the lines you insert.
                Message 7 of 9 , Mar 5, 2013
                • 0 Attachment
                  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.

                  "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.

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



                  --
                  How To Keep A Healthy Level Of Insanity:
                  11. Specify that your drive-through order is "to go".

                  /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                  /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                  \\\ an exciting new programming language -- http://www.Zimbu.org ///
                  \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                  --
                  --
                  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 vim_dev+unsubscribe@....
                  For more options, visit https://groups.google.com/groups/opt_out.
                • Hong Xu
                  ... I tried without the patch, but they cannot pass on my computer... This is weird. ... We do need the second check inside the loop, since people may write
                  Message 8 of 9 , Mar 5, 2013
                  • 0 Attachment
                    On Mar 5, 2013, at 11:57 AM, Bram Moolenaar <Bram@...> 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 vim_dev+unsubscribe@....
                    For more options, visit https://groups.google.com/groups/opt_out.
                  • Bram Moolenaar
                    ... Right, this works like an OR, not an AND. I ll include it and clean it up a bit. I ll add a function to check if a word follows, that is done in many
                    Message 9 of 9 , Mar 7, 2013
                    • 0 Attachment
                      Hong Xu wrote:

                      > On Mar 5, 2013, at 11:57 AM, Bram Moolenaar <Bram@...> 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).

                      Right, this works like an OR, not an AND.

                      I'll include it and clean it up a bit. I'll add a function to check if
                      a word follows, that is done in many places.

                      --
                      How To Keep A Healthy Level Of Insanity:
                      18. When leaving the zoo, start running towards the parking lot,
                      yelling "run for your lives, they're loose!!"

                      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
                      \\\ an exciting new programming language -- http://www.Zimbu.org ///
                      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///

                      --
                      --
                      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 vim_dev+unsubscribe@....
                      For more options, visit https://groups.google.com/groups/opt_out.
                    Your message has been successfully submitted and would be delivered to recipients shortly.