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

32988Re: changelog.vim spacing errors highlighting

Expand Messages
  • Bram Moolenaar
    Jun 1, 2003
      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

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

      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
      let s:spacing_errors = 1

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

      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"
      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 ":"
      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>
      command -nargs=+ HiLink hi def link <args>

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

      delcommand HiLink

      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 ///
    • Show all 15 messages in this topic