blob: 98064e043a7dde79c8b04b473b7cf2741be2b3f6 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Remind
Bram Moolenaarb4ff5182015-11-10 21:15:48 +01003" Maintainer: Davide Alberani <da@erlug.linux.it>
4" Last Change: 02 Nov 2015
5" Version: 0.7
6" URL: http://ismito.it/vim/syntax/remind.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00007"
Bram Moolenaarb4ff5182015-11-10 21:15:48 +01008" Remind is a sophisticated calendar and alarm program.
9" You can download remind from:
10" https://www.roaringpenguin.com/products/remind
11"
12" Changelog
13" version 0.7: updated email and link
14" version 0.6: added THROUGH keyword (courtesy of Ben Orchard)
Bram Moolenaar071d4272004-06-13 20:20:40 +000015
16if version < 600
17 syntax clear
18elseif exists("b:current_syntax")
19 finish
20endif
21
Bram Moolenaar5c736222010-01-06 20:54:52 +010022" shut case off.
Bram Moolenaar071d4272004-06-13 20:20:40 +000023syn case ignore
24
25syn keyword remindCommands REM OMIT SET FSET UNSET
Bram Moolenaarb4ff5182015-11-10 21:15:48 +010026syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH
Bram Moolenaar071d4272004-06-13 20:20:40 +000027syn keyword remindTag PRIORITY TAG
28syn keyword remindTimed AT DURATION
29syn keyword remindMove ONCE SKIP BEFORE AFTER
Bram Moolenaar5c736222010-01-06 20:54:52 +010030syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR
Bram Moolenaar071d4272004-06-13 20:20:40 +000031syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
32syn keyword remindConditional IF ELSE ENDIF IFTRIG
Bram Moolenaar5c736222010-01-06 20:54:52 +010033syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
Bram Moolenaar071d4272004-06-13 20:20:40 +000034syn match remindComment "#.*$"
35syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
36syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000037syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*"
38syn match remindSubst "%[^ ]"
39syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+"
Bram Moolenaar5c736222010-01-06 20:54:52 +010040" XXX: use different separators for dates and times?
41syn match remindDateSeparators "[/:@\.-]" contained
42syn match remindTimes "[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
43" XXX: why not match only valid dates? Ok, checking for 'Feb the 30' would
44" be impossible, but at least check for valid months and times.
45syn match remindDates "'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators
Bram Moolenaar9964e462007-05-05 17:54:07 +000046" This will match trailing whitespaces that seem to break rem2ps.
47" Courtesy of Michael Dunn.
48syn match remindWarning display excludenl "\S\s\+$"ms=s+1
49
Bram Moolenaar071d4272004-06-13 20:20:40 +000050
51if version >= 508 || !exists("did_remind_syn_inits")
52 if version < 508
53 let did_remind_syn_inits = 1
54 command -nargs=+ HiLink hi link <args>
55 else
56 command -nargs=+ HiLink hi def link <args>
57 endif
58
59 HiLink remindCommands Function
60 HiLink remindExpiry Repeat
61 HiLink remindTag Label
62 HiLink remindTimed Statement
63 HiLink remindMove Statement
64 HiLink remindSpecial Include
65 HiLink remindRun Function
66 HiLink remindConditional Conditional
67 HiLink remindComment Comment
Bram Moolenaar5c736222010-01-06 20:54:52 +010068 HiLink remindTimes String
Bram Moolenaar071d4272004-06-13 20:20:40 +000069 HiLink remindString String
70 HiLink remindDebug Debug
71 HiLink remindVar Identifier
72 HiLink remindSubst Constant
73 HiLink remindAdvanceNumber Number
Bram Moolenaar5c736222010-01-06 20:54:52 +010074 HiLink remindDateSeparators Comment
75 HiLink remindDates String
Bram Moolenaar9964e462007-05-05 17:54:07 +000076 HiLink remindWarning Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000077
78 delcommand HiLink
79endif
80
81let b:current_syntax = "remind"
82
83" vim: ts=8 sw=2