summaryrefslogtreecommitdiffstats
path: root/runtime/syntax/calendar.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/calendar.vim')
-rw-r--r--runtime/syntax/calendar.vim110
1 files changed, 110 insertions, 0 deletions
diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
new file mode 100644
index 0000000..4250109
--- /dev/null
+++ b/runtime/syntax/calendar.vim
@@ -0,0 +1,110 @@
+" 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