calendar.vim 4.9 KB

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