calendar.vim (5042B)
1 " Vim syntax file 2 " Language: calendar(1) input file 3 " Previous Maintainer: Nikolai Weibull <now@bitwi.se> 4 " Latest Revision: 2006-04-19 5 6 if exists("b:current_syntax") 7 finish 8 endif 9 10 let s:cpo_save = &cpo 11 set cpo&vim 12 13 syn keyword calendarTodo contained TODO FIXME XXX NOTE 14 15 syn region calendarComment start='/\*' end='\*/' 16 \ contains=calendarTodo,@Spell 17 18 syn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl 19 \ end=+"+ end='$' contains=calendarSpecial 20 syn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)' 21 syn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)" 22 23 syn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' 24 \ skip='\\$' end='$' 25 \ contains=calendarComment,calendarCppString 26 syn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>' 27 syn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$' 28 \ contains=calendarCppOut2 29 syn region calendarCppOut2 contained start='0' 30 \ end='^\s*#\s*\%(endif\|else\|elif\)\>' 31 \ contains=calendarSpaceError,calendarCppSkip 32 syn region calendarCppSkip contained 33 \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' 34 \ skip='\\$' end='^\s*#\s*endif\>' 35 \ contains=calendarSpaceError,calendarCppSkip 36 syn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+ 37 \ end=+"+ 38 syn match calendarIncluded display contained '<[^>]*>' 39 syn match calendarInclude display '^\s*#\s*include\>\s*["<]' 40 \ contains=calendarIncluded 41 syn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded, 42 \ calendarInclude,calendarDefine, 43 \ calendarCppOut,calendarCppOut2, 44 \ calendarCppSkip,calendarString, 45 \ calendarSpecial,calendarTodo 46 syn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>' 47 \ skip='\\$' end='$' 48 \ contains=ALLBUT,@calendarPreProcGroup 49 syn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' 50 \ skip='\\$' end='$' keepend 51 \ contains=ALLBUT,@calendarPreProcGroup 52 53 syn keyword calendarKeyword CHARSET BODUN LANG 54 syn case ignore 55 syn keyword calendarKeyword Easter Pashka 56 syn case match 57 58 syn case ignore 59 syn match calendarNumber display '\<\d\+\>' 60 syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May 61 \ Jun[e] Jul[y] Aug[ust] Sep[tember] 62 \ Oct[ober] Nov[ember] Dec[ember] 63 syn match calendarMonth display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.' 64 syn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday] 65 syn keyword calendarWeekday Fri[day] Sat[urday] Sun[day] 66 syn match calendarWeekday display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' 67 \ nextgroup=calendarWeekdayMod 68 syn match calendarWeekdayMod display '[+-]\d\+\>' 69 syn case match 70 71 syn match calendarTime display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\=' 72 syn match calendarTime display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]' 73 74 syn match calendarVariable '\*' 75 76 if exists("c_minlines") 77 let b:c_minlines = c_minlines 78 else 79 if !exists("c_no_if0") 80 let b:c_minlines = 50 " #if 0 constructs can be long 81 else 82 let b:c_minlines = 15 " mostly for () constructs 83 endif 84 endif 85 exec "syn sync ccomment calendarComment minlines=" . b:c_minlines 86 87 hi def link calendarTodo Todo 88 hi def link calendarComment Comment 89 hi def link calendarCppString String 90 hi def link calendarSpecial SpecialChar 91 hi def link calendarPreCondit PreCondit 92 hi def link calendarCppOut Comment 93 hi def link calendarCppOut2 calendarCppOut 94 hi def link calendarCppSkip calendarCppOut 95 hi def link calendarIncluded String 96 hi def link calendarInclude Include 97 hi def link calendarDefine Macro 98 hi def link calendarPreProc PreProc 99 hi def link calendarKeyword Keyword 100 hi def link calendarNumber Number 101 hi def link calendarMonth String 102 hi def link calendarWeekday String 103 hi def link calendarWeekdayMod Special 104 hi def link calendarTime Number 105 hi def link calendarVariable Identifier 106 107 let b:current_syntax = "calendar" 108 109 let &cpo = s:cpo_save 110 unlet s:cpo_save