diff options
Diffstat (limited to 'runtime/syntax/calendar.vim')
-rw-r--r-- | runtime/syntax/calendar.vim | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim new file mode 100644 index 000000000..9834267ae --- /dev/null +++ b/runtime/syntax/calendar.vim @@ -0,0 +1,104 @@ +" Vim syntax file +" Language: calendar(1) file. +" Maintainer: Nikolai Weibull <source@pcppopper.org> +" URL: http://www.pcppopper.org/vim/syntax/pcp/calendar/ +" Latest Revision: 2004-05-06 +" arch-tag: d714127d-469d-43bd-9c79-c2a46ec54535 + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" Todo +syn keyword calendarTodo contained TODO FIXME XXX NOTE + +" Comments +syn region calendarComment matchgroup=calendarComment start='/\*' end='\*/' contains=calendarTodo + +" Strings +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}\)" + +" cpp(1) Preprocessor directives (adapted from syntax/c.vim) + +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 + +" Keywords +syn keyword calendarKeyword CHARSET BODUN LANG +syn case ignore +syn keyword calendarKeyword Easter Pashka +syn case match + +" Dates +syn case ignore +syn match calendarNumber '\<\d\+\>' +syn keyword calendarMonth Jan[uary] Feb[ruary] Mar[ch] Apr[il] May Jun[e] +syn keyword calendarMonth Jul[y] Aug[ust] Sep[tember] Oct[ober] +syn keyword calendarMonth Nov[ember] Dec[ember] +syn match calendarMonth '\<\%(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 '\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' nextgroup=calendarWeekdayMod +syn match calendarWeekdayMod '[+-]\d\+\>' +syn case match + +" Times +syn match calendarTime '\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\=' +syn match calendarTime '\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]' + +" Variables +syn match calendarVariable '\*' + +let b:c_minlines = 50 " #if 0 constructs can be long +exec "syn sync ccomment calendarComment minlines=" . b:c_minlines + +" 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_calendar_syn_inits") + if version < 508 + let did_calendar_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink calendarTodo Todo + HiLink calendarComment Comment + HiLink calendarCppString String + HiLink calendarSpecial SpecialChar + HiLink calendarPreCondit PreCondit + HiLink calendarCppOut Comment + HiLink calendarCppOut2 calendarCppOut + HiLink calendarCppSkip calendarCppOut + HiLink calendarIncluded String + HiLink calendarInclude Include + HiLink calendarDefine Macro + HiLink calendarPreProc PreProc + HiLink calendarKeyword Keyword + HiLink calendarNumber Number + HiLink calendarMonth String + HiLink calendarWeekday String + HiLink calendarWeekdayMod Special + HiLink calendarTime Number + HiLink calendarVariable Identifier + + delcommand HiLink +endif + +let b:current_syntax = "calendar" + +" vim: set sts=2 sw=2: |