1071d4279SBram Moolenaar" Vim syntax file 242eeac35SBram Moolenaar" Language: calendar(1) input file 3*214641f7SBram Moolenaar" Previous Maintainer: Nikolai Weibull <[email protected]> 457657d85SBram Moolenaar" Latest Revision: 2006-04-19 5071d4279SBram Moolenaar 642eeac35SBram Moolenaarif exists("b:current_syntax") 7071d4279SBram Moolenaar finish 8071d4279SBram Moolenaarendif 9071d4279SBram Moolenaar 1042eeac35SBram Moolenaarlet s:cpo_save = &cpo 1142eeac35SBram Moolenaarset cpo&vim 1242eeac35SBram Moolenaar 13071d4279SBram Moolenaarsyn keyword calendarTodo contained TODO FIXME XXX NOTE 14071d4279SBram Moolenaar 150dc065eeSBram Moolenaarsyn region calendarComment start='/\*' end='\*/' 1642eeac35SBram Moolenaar \ contains=calendarTodo,@Spell 17071d4279SBram Moolenaar 1842eeac35SBram Moolenaarsyn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl 1942eeac35SBram Moolenaar \ end=+"+ end='$' contains=calendarSpecial 20071d4279SBram Moolenaarsyn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)' 21071d4279SBram Moolenaarsyn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" 22071d4279SBram Moolenaar 2342eeac35SBram Moolenaarsyn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' 2442eeac35SBram Moolenaar \ skip='\\$' end='$' 2542eeac35SBram Moolenaar \ contains=calendarComment,calendarCppString 26071d4279SBram Moolenaarsyn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>' 2742eeac35SBram Moolenaarsyn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$' 2842eeac35SBram Moolenaar \ contains=calendarCppOut2 2942eeac35SBram Moolenaarsyn region calendarCppOut2 contained start='0' 3042eeac35SBram Moolenaar \ end='^\s*#\s*\%(endif\|else\|elif\)\>' 3142eeac35SBram Moolenaar \ contains=calendarSpaceError,calendarCppSkip 3242eeac35SBram Moolenaarsyn region calendarCppSkip contained 3342eeac35SBram Moolenaar \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' 3442eeac35SBram Moolenaar \ skip='\\$' end='^\s*#\s*endif\>' 3542eeac35SBram Moolenaar \ contains=calendarSpaceError,calendarCppSkip 3642eeac35SBram Moolenaarsyn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+ 3742eeac35SBram Moolenaar \ end=+"+ 38071d4279SBram Moolenaarsyn match calendarIncluded display contained '<[^>]*>' 3942eeac35SBram Moolenaarsyn match calendarInclude display '^\s*#\s*include\>\s*["<]' 4042eeac35SBram Moolenaar \ contains=calendarIncluded 4142eeac35SBram Moolenaarsyn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded, 4242eeac35SBram Moolenaar \ calendarInclude,calendarDefine, 4342eeac35SBram Moolenaar \ calendarCppOut,calendarCppOut2, 4442eeac35SBram Moolenaar \ calendarCppSkip,calendarString, 4542eeac35SBram Moolenaar \ calendarSpecial,calendarTodo 4642eeac35SBram Moolenaarsyn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>' 4742eeac35SBram Moolenaar \ skip='\\$' end='$' 4842eeac35SBram Moolenaar \ contains=ALLBUT,@calendarPreProcGroup 4942eeac35SBram Moolenaarsyn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' 5042eeac35SBram Moolenaar \ skip='\\$' end='$' keepend 5142eeac35SBram Moolenaar \ contains=ALLBUT,@calendarPreProcGroup 52071d4279SBram Moolenaar 53071d4279SBram Moolenaarsyn keyword calendarKeyword CHARSET BODUN LANG 54071d4279SBram Moolenaarsyn case ignore 55071d4279SBram Moolenaarsyn keyword calendarKeyword Easter Pashka 56071d4279SBram Moolenaarsyn case match 57071d4279SBram Moolenaar 58071d4279SBram Moolenaarsyn case ignore 5942eeac35SBram Moolenaarsyn match calendarNumber display '\<\d\+\>' 6042eeac35SBram Moolenaarsyn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May 6142eeac35SBram Moolenaar \ Jun[e] Jul[y] Aug[ust] Sep[tember] 6242eeac35SBram Moolenaar \ Oct[ober] Nov[ember] Dec[ember] 6342eeac35SBram Moolenaarsyn match calendarMonth display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.' 64071d4279SBram Moolenaarsyn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday] 65071d4279SBram Moolenaarsyn keyword calendarWeekday Fri[day] Sat[urday] Sun[day] 6642eeac35SBram Moolenaarsyn match calendarWeekday display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' 6742eeac35SBram Moolenaar \ nextgroup=calendarWeekdayMod 6842eeac35SBram Moolenaarsyn match calendarWeekdayMod display '[+-]\d\+\>' 69071d4279SBram Moolenaarsyn case match 70071d4279SBram Moolenaar 7142eeac35SBram Moolenaarsyn match calendarTime display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\=' 7242eeac35SBram Moolenaarsyn match calendarTime display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]' 73071d4279SBram Moolenaar 74071d4279SBram Moolenaarsyn match calendarVariable '\*' 75071d4279SBram Moolenaar 7642eeac35SBram Moolenaarif exists("c_minlines") 7742eeac35SBram Moolenaar let b:c_minlines = c_minlines 7842eeac35SBram Moolenaarelse 7942eeac35SBram Moolenaar if !exists("c_no_if0") 80071d4279SBram Moolenaar let b:c_minlines = 50 " #if 0 constructs can be long 8142eeac35SBram Moolenaar else 8242eeac35SBram Moolenaar let b:c_minlines = 15 " mostly for () constructs 8342eeac35SBram Moolenaar endif 8442eeac35SBram Moolenaarendif 85071d4279SBram Moolenaarexec "syn sync ccomment calendarComment minlines=" . b:c_minlines 86071d4279SBram Moolenaar 8742eeac35SBram Moolenaarhi def link calendarTodo Todo 8842eeac35SBram Moolenaarhi def link calendarComment Comment 8942eeac35SBram Moolenaarhi def link calendarCppString String 9042eeac35SBram Moolenaarhi def link calendarSpecial SpecialChar 9142eeac35SBram Moolenaarhi def link calendarPreCondit PreCondit 9242eeac35SBram Moolenaarhi def link calendarCppOut Comment 9342eeac35SBram Moolenaarhi def link calendarCppOut2 calendarCppOut 9442eeac35SBram Moolenaarhi def link calendarCppSkip calendarCppOut 9542eeac35SBram Moolenaarhi def link calendarIncluded String 9642eeac35SBram Moolenaarhi def link calendarInclude Include 9742eeac35SBram Moolenaarhi def link calendarDefine Macro 9842eeac35SBram Moolenaarhi def link calendarPreProc PreProc 9942eeac35SBram Moolenaarhi def link calendarKeyword Keyword 10042eeac35SBram Moolenaarhi def link calendarNumber Number 10142eeac35SBram Moolenaarhi def link calendarMonth String 10242eeac35SBram Moolenaarhi def link calendarWeekday String 10342eeac35SBram Moolenaarhi def link calendarWeekdayMod Special 10442eeac35SBram Moolenaarhi def link calendarTime Number 10542eeac35SBram Moolenaarhi def link calendarVariable Identifier 106071d4279SBram Moolenaar 107071d4279SBram Moolenaarlet b:current_syntax = "calendar" 108071d4279SBram Moolenaar 10942eeac35SBram Moolenaarlet &cpo = s:cpo_save 11042eeac35SBram Moolenaarunlet s:cpo_save 111