123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- " Vim syntax file
- " Language: calendar(1) input file
- " Previous Maintainer: Nikolai Weibull <now@bitwi.se>
- " Latest Revision: 2006-04-19
- if exists("b:current_syntax")
- finish
- endif
- let s:cpo_save = &cpo
- set cpo&vim
- syn keyword calendarTodo contained TODO FIXME XXX NOTE
- syn region calendarComment start='/\*' end='\*/'
- \ contains=calendarTodo,@Spell
- syn region calendarCppString start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl
- \ end=+"+ end='$' contains=calendarSpecial
- syn match calendarSpecial display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
- syn match calendarSpecial display contained "\\\(u\x\{4}\|U\x\{8}\)"
- syn region calendarPreCondit start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>'
- \ skip='\\$' end='$'
- \ contains=calendarComment,calendarCppString
- syn match calendarPreCondit display '^\s*#\s*\%(else\|endif\)\>'
- syn region calendarCppOut start='^\s*#\s*if\s\+0\+' end='.\@=\|$'
- \ contains=calendarCppOut2
- syn region calendarCppOut2 contained start='0'
- \ end='^\s*#\s*\%(endif\|else\|elif\)\>'
- \ contains=calendarSpaceError,calendarCppSkip
- syn region calendarCppSkip contained
- \ start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>'
- \ skip='\\$' end='^\s*#\s*endif\>'
- \ contains=calendarSpaceError,calendarCppSkip
- syn region calendarIncluded display contained start=+"+ skip=+\\\\\|\\"+
- \ end=+"+
- syn match calendarIncluded display contained '<[^>]*>'
- syn match calendarInclude display '^\s*#\s*include\>\s*["<]'
- \ contains=calendarIncluded
- syn cluster calendarPreProcGroup contains=calendarPreCondit,calendarIncluded,
- \ calendarInclude,calendarDefine,
- \ calendarCppOut,calendarCppOut2,
- \ calendarCppSkip,calendarString,
- \ calendarSpecial,calendarTodo
- syn region calendarDefine start='^\s*#\s*\%(define\|undef\)\>'
- \ skip='\\$' end='$'
- \ contains=ALLBUT,@calendarPreProcGroup
- syn region calendarPreProc start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>'
- \ skip='\\$' end='$' keepend
- \ contains=ALLBUT,@calendarPreProcGroup
- syn keyword calendarKeyword CHARSET BODUN LANG
- syn case ignore
- syn keyword calendarKeyword Easter Pashka
- syn case match
- syn case ignore
- syn match calendarNumber display '\<\d\+\>'
- syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May
- \ Jun[e] Jul[y] Aug[ust] Sep[tember]
- \ Oct[ober] Nov[ember] Dec[ember]
- syn match calendarMonth display '\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
- syn keyword calendarWeekday Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
- syn keyword calendarWeekday Fri[day] Sat[urday] Sun[day]
- syn match calendarWeekday display '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.'
- \ nextgroup=calendarWeekdayMod
- syn match calendarWeekdayMod display '[+-]\d\+\>'
- syn case match
- syn match calendarTime display '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
- syn match calendarTime display '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
- syn match calendarVariable '\*'
- if exists("c_minlines")
- let b:c_minlines = c_minlines
- else
- if !exists("c_no_if0")
- let b:c_minlines = 50 " #if 0 constructs can be long
- else
- let b:c_minlines = 15 " mostly for () constructs
- endif
- endif
- exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
- hi def link calendarTodo Todo
- hi def link calendarComment Comment
- hi def link calendarCppString String
- hi def link calendarSpecial SpecialChar
- hi def link calendarPreCondit PreCondit
- hi def link calendarCppOut Comment
- hi def link calendarCppOut2 calendarCppOut
- hi def link calendarCppSkip calendarCppOut
- hi def link calendarIncluded String
- hi def link calendarInclude Include
- hi def link calendarDefine Macro
- hi def link calendarPreProc PreProc
- hi def link calendarKeyword Keyword
- hi def link calendarNumber Number
- hi def link calendarMonth String
- hi def link calendarWeekday String
- hi def link calendarWeekdayMod Special
- hi def link calendarTime Number
- hi def link calendarVariable Identifier
- let b:current_syntax = "calendar"
- let &cpo = s:cpo_save
- unlet s:cpo_save
|