Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | 214641f | 2017-03-05 17:04:09 +0100 | [diff] [blame] | 2 | " Language: calendar(1) input file |
| 3 | " Previous Maintainer: Nikolai Weibull <now@bitwi.se> |
| 4 | " Latest Revision: 2006-04-19 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 5 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 6 | if exists("b:current_syntax") |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 7 | finish |
| 8 | endif |
| 9 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 10 | let s:cpo_save = &cpo |
| 11 | set cpo&vim |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 12 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 13 | syn keyword calendarTodo contained TODO FIXME XXX NOTE |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 14 | |
Bram Moolenaar | 0dc065e | 2005-07-04 22:49:24 +0000 | [diff] [blame] | 15 | syn region calendarComment start='/\*' end='\*/' |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 16 | \ contains=calendarTodo,@Spell |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 17 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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}\)" |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 22 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 52 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 53 | syn keyword calendarKeyword CHARSET BODUN LANG |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 54 | syn case ignore |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 55 | syn keyword calendarKeyword Easter Pashka |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 56 | syn case match |
| 57 | |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 58 | syn case ignore |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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\+\>' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 69 | syn case match |
| 70 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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]' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 73 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 74 | syn match calendarVariable '\*' |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 75 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 85 | exec "syn sync ccomment calendarComment minlines=" . b:c_minlines |
| 86 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 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 |
Bram Moolenaar | 071d427 | 2004-06-13 20:20:40 +0000 | [diff] [blame] | 106 | |
| 107 | let b:current_syntax = "calendar" |
| 108 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 109 | let &cpo = s:cpo_save |
| 110 | unlet s:cpo_save |