1*071d4279SBram Moolenaar" Vim syntax file 2*071d4279SBram Moolenaar" Language: generic ChangeLog file 3*071d4279SBram Moolenaar" Written By: Gediminas Paulauskas <[email protected]> 4*071d4279SBram Moolenaar" Maintainer: Corinna Vinschen <[email protected]> 5*071d4279SBram Moolenaar" Last Change: June 1, 2003 6*071d4279SBram Moolenaar 7*071d4279SBram Moolenaar" For version 5.x: Clear all syntax items 8*071d4279SBram Moolenaar" For version 6.x: Quit when a syntax file was already loaded 9*071d4279SBram Moolenaarif version < 600 10*071d4279SBram Moolenaar syntax clear 11*071d4279SBram Moolenaarelseif exists("b:current_syntax") 12*071d4279SBram Moolenaar finish 13*071d4279SBram Moolenaarendif 14*071d4279SBram Moolenaar 15*071d4279SBram Moolenaarsyn case ignore 16*071d4279SBram Moolenaar 17*071d4279SBram Moolenaarif exists('b:changelog_spacing_errors') 18*071d4279SBram Moolenaar let s:spacing_errors = b:changelog_spacing_errors 19*071d4279SBram Moolenaarelseif exists('g:changelog_spacing_errors') 20*071d4279SBram Moolenaar let s:spacing_errors = g:changelog_spacing_errors 21*071d4279SBram Moolenaarelse 22*071d4279SBram Moolenaar let s:spacing_errors = 1 23*071d4279SBram Moolenaarendif 24*071d4279SBram Moolenaar 25*071d4279SBram Moolenaarif s:spacing_errors 26*071d4279SBram Moolenaar syn match changelogError "^ \+" 27*071d4279SBram Moolenaarendif 28*071d4279SBram Moolenaar 29*071d4279SBram Moolenaarsyn match changelogText "^\s.*$" contains=changelogMail,changelogNumber,changelogMonth,changelogDay,changelogError 30*071d4279SBram Moolenaarsyn match changelogHeader "^\S.*$" contains=changelogNumber,changelogMonth,changelogDay,changelogMail 31*071d4279SBram Moolenaarif version < 600 32*071d4279SBram Moolenaar syn region changelogFiles start="^\s\+[+*]\s" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend 33*071d4279SBram Moolenaar syn region changelogFiles start="^\s\+[([]" end=":\s" end="^$" contains=changelogBullet,changelogColon,changelogError keepend 34*071d4279SBram Moolenaar syn match changelogColon contained ":\s" 35*071d4279SBram Moolenaarelse 36*071d4279SBram Moolenaar syn region changelogFiles start="^\s\+[+*]\s" end=":" end="^$" contains=changelogBullet,changelogColon,changeLogFuncs,changelogError keepend 37*071d4279SBram Moolenaar syn region changelogFiles start="^\s\+[([]" end=":" end="^$" contains=changelogBullet,changelogColon,changeLogFuncs,changelogError keepend 38*071d4279SBram Moolenaar syn match changeLogFuncs contained "(.\{-})" extend 39*071d4279SBram Moolenaar syn match changeLogFuncs contained "\[.\{-}]" extend 40*071d4279SBram Moolenaar syn match changelogColon contained ":" 41*071d4279SBram Moolenaarendif 42*071d4279SBram Moolenaarsyn match changelogBullet contained "^\s\+[+*]\s" contains=changelogError 43*071d4279SBram Moolenaarsyn match changelogMail contained "<[A-Za-z0-9\._:+-]\+@[A-Za-z0-9\._-]\+>" 44*071d4279SBram Moolenaarsyn keyword changelogMonth contained jan feb mar apr may jun jul aug sep oct nov dec 45*071d4279SBram Moolenaarsyn keyword changelogDay contained mon tue wed thu fri sat sun 46*071d4279SBram Moolenaarsyn match changelogNumber contained "[.-]*[0-9]\+" 47*071d4279SBram Moolenaar 48*071d4279SBram Moolenaar" Define the default highlighting. 49*071d4279SBram Moolenaar" For version 5.7 and earlier: only when not done already 50*071d4279SBram Moolenaar" For version 5.8 and later: only when an item doesn't have highlighting yet 51*071d4279SBram Moolenaarif version >= 508 || !exists("did_changelog_syntax_inits") 52*071d4279SBram Moolenaar if version < 508 53*071d4279SBram Moolenaar let did_changelog_syntax_inits = 1 54*071d4279SBram Moolenaar command -nargs=+ HiLink hi link <args> 55*071d4279SBram Moolenaar else 56*071d4279SBram Moolenaar command -nargs=+ HiLink hi def link <args> 57*071d4279SBram Moolenaar endif 58*071d4279SBram Moolenaar 59*071d4279SBram Moolenaar HiLink changelogText Normal 60*071d4279SBram Moolenaar HiLink changelogBullet Type 61*071d4279SBram Moolenaar HiLink changelogColon Type 62*071d4279SBram Moolenaar HiLink changelogFiles Comment 63*071d4279SBram Moolenaar if version >= 600 64*071d4279SBram Moolenaar HiLink changelogFuncs Comment 65*071d4279SBram Moolenaar endif 66*071d4279SBram Moolenaar HiLink changelogHeader Statement 67*071d4279SBram Moolenaar HiLink changelogMail Special 68*071d4279SBram Moolenaar HiLink changelogNumber Number 69*071d4279SBram Moolenaar HiLink changelogMonth Number 70*071d4279SBram Moolenaar HiLink changelogDay Number 71*071d4279SBram Moolenaar HiLink changelogError Folded 72*071d4279SBram Moolenaar 73*071d4279SBram Moolenaar delcommand HiLink 74*071d4279SBram Moolenaarendif 75*071d4279SBram Moolenaar 76*071d4279SBram Moolenaarlet b:current_syntax = "changelog" 77*071d4279SBram Moolenaar 78*071d4279SBram Moolenaar" vim: ts=8 79