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

Re: changelog.vim spacing errors highlighting

Expand Messages
  • David Necas (Yeti)
    ... I m not Bram ;-) but I ll add a one note anyway. I understand your motivation. But I m afraid you overestimate the capabilities of average Vim users.
    Message 1 of 15 , Jun 1, 2003
    • 0 Attachment
      On Sun, Jun 01, 2003 at 11:01:08AM +0200, Corinna Vinschen wrote:
      > On Sat, May 31, 2003 at 12:33:48PM +0200, Bram Moolenaar wrote:
      > > Thanks. I'll include the change. Unfortunately, I have not heard back
      > > from Corinna on my remarks. Hopefully that means she doesn't object...
      >
      > The problem with having it switched off by default is that nobody will
      > ever see that a nice functionality, showing that the ChangeLog is incorrect
      > in its invisible parts, exists at all. OTOH, those who are annoyed by
      > showing the error in the ChangeLog will try to find a way to switch it
      > off and woops, there it is, so what's the problem.

      I'm not Bram ;-) but I'll add a one note anyway.

      I understand your motivation. But I'm afraid you
      overestimate the capabilities of average Vim users. True,
      most of them probably would find some way how to get rid of
      the Errors -- by asking someone else what to do with them.
      Believe me, I know a few of them :-) Moreover, ChangeLogs
      (of any kind, GNU or not) are much more often read than
      written, but the original default behaviour helps only GNU
      writes i.e., people who actually change the space into a tab
      when they see one and commit this change.

      Thus the decision is between two evils: some people won't
      exploit all the possibilities it offers because they won't
      know about them and, some people will be quite annoyed by
      the default behaviour. IMO the first one is the smaller
      one.

      Yeti
    • Bram Moolenaar
      ... I can understand that you want to flag wrong whitespace, but I also understand the point that thise is not really an error. Again, I have to refer to
      Message 2 of 15 , Jun 1, 2003
      • 0 Attachment
        Corinna Vinschen wrote:

        > On Sat, May 31, 2003 at 12:33:48PM +0200, Bram Moolenaar wrote:
        > > Thanks. I'll include the change. Unfortunately, I have not heard back
        > > from Corinna on my remarks. Hopefully that means she doesn't object...
        >
        > [Sorry for responding that slow. I was somewhat distracted by RL.]
        >
        > I did already object, IIRC.
        >
        > As I said, I have no problems to let a change in to allow to switch off
        > showing missing TABs as errors but I don't see what it's good for to
        > switch it off by default. Showing the TABs is a very helpful functionality
        > in GNU projects since even if it's not mentioned in the syntax description
        > on gnu.org, it's common sense in important projects (just to name a few:
        > gawk, gcc, gdb, make, sed) to use TAB as start of entries. All these
        > projects also contain ChangeLog entries with leading spaces but these are
        > included by mistake, a mistake which could have been avoided...
        >
        > The problem with having it switched off by default is that nobody will
        > ever see that a nice functionality, showing that the ChangeLog is incorrect
        > in its invisible parts, exists at all. OTOH, those who are annoyed by
        > showing the error in the ChangeLog will try to find a way to switch it
        > off and woops, there it is, so what's the problem.
        >
        > Be it as it is, it's your final decision, Bram.

        I can understand that you want to flag wrong whitespace, but I also
        understand the point that thise is not really an error. Again, I have
        to refer to highlighting wrong white space in C sources. This is also
        off by default, although I strongly believe that no C source should
        have a space before a tab or trailing white space.

        Let's try to find a compromise: flag the wrong white space but not as an
        error. We don't have a warning highlight group though. You could
        perhaps use the Folded or DiffAdd highlighting (most others only have a
        foreground color, which won't work for white space).

        Where can I find a good example of a file to see what the resulting
        highlighting looks like?

        --
        Portable Computer: A device invented to force businessmen
        to work at home, on vacation, and on business trips.

        /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
        \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
        \\\ Help AIDS victims, buy at Amazon -- http://ICCF.nl/click1.html ///
      • Corinna Vinschen
        ... Yes, why not. Highlighting them as error typically makes them red , It might be a good idea to highlight them more carefully. This is both in one go,
        Message 3 of 15 , Jun 1, 2003
        • 0 Attachment
          On Sun, Jun 01, 2003 at 12:07:02PM +0200, Bram Moolenaar wrote:
          > Let's try to find a compromise: flag the wrong white space but not as an
          > error. We don't have a warning highlight group though. You could
          > perhaps use the Folded or DiffAdd highlighting (most others only have a
          > foreground color, which won't work for white space).

          Yes, why not. Highlighting them as error typically makes them "red",
          It might be a good idea to highlight them more carefully. This is
          both in one go, helpful for TABies, not that annoying for non-TABies.

          > Where can I find a good example of a file to see what the resulting
          > highlighting looks like?

          Just take the below example containing TABs and spaces and use the current
          changelog.vim (that is, the one before you added David's patch). Copy
          it to a file as is and `set ft=changelog':

          ==== SNIP ====
          Sun May 25 16:23:43 2003 Corinna Vinschen <vinschen@...>

          * configure.ac: Remove linking against /usr/lib/automode.o.
          * configure: Regenerate.

          Sun May 25 15:19:19 2003 Stepan Kasal <kasal@...>

          * awk.h (get_lhs): For an initialized Node_var, you may return
          the address of var_value pointer, no matter whether reference
          bit was set or not. We were silly slowing down most of the
          assignements.

          ==== SNAP ====

          This is from current gawk. Unfortunately, Aahron added my own ChangeLog
          entry mistakenly with spaces in this case :-) The first entry will have
          "coloured spaces", the second entry looks normal.

          Corinna

          --
          Corinna Vinschen
          Cygwin Developer
          Red Hat, Inc.
          mailto:vinschen@...
        • Mikolaj Machowski
          On Sun, Jun 01, 2003 at 11:01:08AM +0200, Corinna Vinschen wrote: BTW. If I can suggest one thing to changelog.vim: couldn t be set autoindent default setting
          Message 4 of 15 , Jun 1, 2003
          • 0 Attachment
            On Sun, Jun 01, 2003 at 11:01:08AM +0200, Corinna Vinschen wrote:

            BTW. If I can suggest one thing to changelog.vim: couldn't be set
            autoindent default setting in this ftplugin?

            m.
            --
            LaTeX + Vim = http://vim-latex.sourceforge.net/
            Vim-list(s) Users Map: (last change 27 May)
            http://skawina.eu.org/mikolaj/vimlist
            Are You There?
          • Corinna Vinschen
            ... Actually I like Bram s idea to keep highlighting the default but to use a less annoying style of highlighting. That should be most sufficient for people
            Message 5 of 15 , Jun 1, 2003
            • 0 Attachment
              On Sun, Jun 01, 2003 at 11:31:42AM +0200, David Necas (Yeti) wrote:
              > Thus the decision is between two evils: some people won't
              > exploit all the possibilities it offers because they won't
              > know about them and, some people will be quite annoyed by
              > the default behaviour. IMO the first one is the smaller
              > one.

              Actually I like Bram's idea to keep highlighting the default but to use
              a less annoying style of highlighting. That should be most sufficient
              for people on both sides of the range. You can see the wrong spaces but
              they don't blind you. And given the inverse of your patch, purists of
              non-TABiism can even switch it off.

              Corinna

              --
              Corinna Vinschen
              Cygwin Developer
              Red Hat, Inc.
              mailto:vinschen@...
            • Bram Moolenaar
              ... OK, I ll do that now. Hmm, appears to be a bit more complicated, because we should also highlight the file name. This is what I came up with. The docs
              Message 6 of 15 , Jun 1, 2003
              • 0 Attachment
                Corinna Vinschen wrote:

                > On Sun, Jun 01, 2003 at 12:07:02PM +0200, Bram Moolenaar wrote:
                > > Let's try to find a compromise: flag the wrong white space but not as an
                > > error. We don't have a warning highlight group though. You could
                > > perhaps use the Folded or DiffAdd highlighting (most others only have a
                > > foreground color, which won't work for white space).
                >
                > Yes, why not. Highlighting them as error typically makes them "red",
                > It might be a good idea to highlight them more carefully. This is
                > both in one go, helpful for TABies, not that annoying for non-TABies.

                OK, I'll do that now.

                Hmm, appears to be a bit more complicated, because we should also
                highlight the file name. This is what I came up with.

                The docs entry:
                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                CHANGELOG *changelog.vim* *changelog-syntax*

                ChangeLog supports highlighting spaces at the start of a line.
                If you do not like this, add following line to your .vimrc: >
                let g:changelog_spacing_errors = 0
                This works the next time you edit a changelog file. You can also use
                "b:changelog_spacing_errors" to set this per buffer (before loading the syntax
                file).

                You can change the highlighting used, e.g., to flag the spaces as an error: >
                :hi link ChangelogError Error
                Or to avoid the highlighting: >
                :hi link ChangelogError NONE
                This works immediately.
                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

                And the syntax file:
                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                " Vim syntax file
                " Language: generic ChangeLog file
                " Written By: Gediminas Paulauskas <menesis@...>
                " Maintainer: Corinna Vinschen <vinschen@...>
                " changelog_spacing_errors modification by David Necas.
                " Last Change: May 31, 2003

                " Options: let changelog_spacing_errors = 1
                " if you want spaces at start of line highlighted as errors.

                " For version 5.x: Clear all syntax items
                " For version 6.x: Quit when a syntax file was already loaded
                if version < 600
                syntax clear
                elseif exists("b:current_syntax")
                finish
                endif

                syn case ignore

                if exists('b:changelog_spacing_errors')
                let s:spacing_errors = b:changelog_spacing_errors
                elseif exists('g:changelog_spacing_errors')
                let s:spacing_errors = g:changelog_spacing_errors
                else
                let s:spacing_errors = 1
                endif

                if s:spacing_errors
                syn match changelogError "^ \+"
                endif

                syn match changelogText "^\s.*$" contains=changelogMail,changelogNumber,changelogMonth,changelogDay
                syn match changelogHeader "^\S.*$" contains=changelogNumber,changelogMonth,changelogDay,changelogMail
                if version < 600
                syn region changelogFiles start="^\s\+[+*]\s" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend
                syn region changelogFiles start="^\s\+[([]" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend
                syn match changelogColon contained ":\s"
                else
                syn region changelogFiles start="^\s\+[+*]\s" end=":" end="^$" contains=changelogBullet,changelogColon,changeLogFuncs,changelogError keepend
                syn region changelogFiles start="^\s\+[([]" end=":" end="^$" contains=changelogBullet,changelogColon,changeLogFuncs,changelogError keepend
                syn match changeLogFuncs contained "(.\{-})" extend
                syn match changeLogFuncs contained "\[.\{-}]" extend
                syn match changelogColon contained ":"
                endif
                syn match changelogBullet contained "^\s\+[+*]\s" contains=changelogError
                syn match changelogMail contained "<[A-Za-z0-9\._:+-]\+@[A-Za-z0-9\._-]\+>"
                syn keyword changelogMonth contained jan feb mar apr may jun jul aug sep oct nov dec
                syn keyword changelogDay contained mon tue wed thu fri sat sun
                syn match changelogNumber contained "[.-]*[0-9]\+"

                " Define the default highlighting.
                " For version 5.7 and earlier: only when not done already
                " For version 5.8 and later: only when an item doesn't have highlighting yet
                if version >= 508 || !exists("did_changelog_syntax_inits")
                if version < 508
                let did_changelog_syntax_inits = 1
                command -nargs=+ HiLink hi link <args>
                else
                command -nargs=+ HiLink hi def link <args>
                endif

                HiLink changelogText Normal
                HiLink changelogBullet Type
                HiLink changelogColon Type
                HiLink changelogFiles Comment
                if version >= 600
                HiLink changelogFuncs Comment
                endif
                HiLink changelogHeader Statement
                HiLink changelogMail Special
                HiLink changelogNumber Number
                HiLink changelogMonth Number
                HiLink changelogDay Number
                HiLink changelogError Folded

                delcommand HiLink
                endif

                let b:current_syntax = "changelog"

                " vim: ts=8
                -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

                --
                It is hard to understand how a cemetery raised its burial
                cost and blamed it on the cost of living.

                /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
                /// Creator of Vim - Vi IMproved -- http://www.Vim.org \\\
                \\\ Project leader for A-A-P -- http://www.A-A-P.org ///
                \\\ Help AIDS victims, buy at Amazon -- http://ICCF.nl/click1.html ///
              • Corinna Vinschen
                ... Thumb up from me. Thanks, Corinna -- Corinna Vinschen Cygwin Developer Red Hat, Inc. mailto:vinschen@redhat.com
                Message 7 of 15 , Jun 1, 2003
                • 0 Attachment
                  On Sun, Jun 01, 2003 at 02:06:56PM +0200, Bram Moolenaar wrote:
                  > This is what I came up with.

                  Thumb up from me.

                  Thanks,
                  Corinna

                  --
                  Corinna Vinschen
                  Cygwin Developer
                  Red Hat, Inc.
                  mailto:vinschen@...
                • David Necas (Yeti)
                  ... OK, space-only ChangeLogs look a little bit funny, but readability isn t considerably affected. When someone uses listchars to visualize tabs (like me),
                  Message 8 of 15 , Jun 1, 2003
                  • 0 Attachment
                    On Sun, Jun 01, 2003 at 02:06:56PM +0200, Bram Moolenaar wrote:
                    >
                    > Hmm, appears to be a bit more complicated, because we should also
                    > highlight the file name. This is what I came up with.

                    OK, space-only ChangeLogs look a little bit funny, but
                    readability isn't considerably affected. When someone uses
                    listchars to visualize tabs (like me), it looks even more
                    funny -- both tabs and spaces are emphasized. But OK, it's
                    a compromise.

                    Yeti
                  Your message has been successfully submitted and would be delivered to recipients shortly.