blob: 93a7178479b7e56b57f17b8aaee0d7e362290f9a [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Remind
Bram Moolenaar9964e462007-05-05 17:54:07 +00003" Maintainer: Davide Alberani <alberanid@libero.it>
Bram Moolenaar5c736222010-01-06 20:54:52 +01004" Last Change: 18 Sep 2009
5" Version: 0.5
Bram Moolenaar9964e462007-05-05 17:54:07 +00006" URL: http://erlug.linux.it/~da/vim/syntax/remind.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00007"
Bram Moolenaar5c736222010-01-06 20:54:52 +01008" remind is a sophisticated reminder service
9" you can download remind from:
10" http://www.roaringpenguin.com/penguin/open_source_remind.php
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
12if version < 600
13 syntax clear
14elseif exists("b:current_syntax")
15 finish
16endif
17
Bram Moolenaar5c736222010-01-06 20:54:52 +010018" shut case off.
Bram Moolenaar071d4272004-06-13 20:20:40 +000019syn case ignore
20
21syn keyword remindCommands REM OMIT SET FSET UNSET
Bram Moolenaar5c736222010-01-06 20:54:52 +010022syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED
Bram Moolenaar071d4272004-06-13 20:20:40 +000023syn keyword remindTag PRIORITY TAG
24syn keyword remindTimed AT DURATION
25syn keyword remindMove ONCE SKIP BEFORE AFTER
Bram Moolenaar5c736222010-01-06 20:54:52 +010026syn 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 +000027syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
28syn keyword remindConditional IF ELSE ENDIF IFTRIG
Bram Moolenaar5c736222010-01-06 20:54:52 +010029syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
Bram Moolenaar071d4272004-06-13 20:20:40 +000030syn match remindComment "#.*$"
31syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
32syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000033syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*"
34syn match remindSubst "%[^ ]"
35syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+"
Bram Moolenaar5c736222010-01-06 20:54:52 +010036" XXX: use different separators for dates and times?
37syn match remindDateSeparators "[/:@\.-]" contained
38syn match remindTimes "[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
39" XXX: why not match only valid dates? Ok, checking for 'Feb the 30' would
40" be impossible, but at least check for valid months and times.
41syn 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 +000042" This will match trailing whitespaces that seem to break rem2ps.
43" Courtesy of Michael Dunn.
44syn match remindWarning display excludenl "\S\s\+$"ms=s+1
45
Bram Moolenaar071d4272004-06-13 20:20:40 +000046
47if version >= 508 || !exists("did_remind_syn_inits")
48 if version < 508
49 let did_remind_syn_inits = 1
50 command -nargs=+ HiLink hi link <args>
51 else
52 command -nargs=+ HiLink hi def link <args>
53 endif
54
55 HiLink remindCommands Function
56 HiLink remindExpiry Repeat
57 HiLink remindTag Label
58 HiLink remindTimed Statement
59 HiLink remindMove Statement
60 HiLink remindSpecial Include
61 HiLink remindRun Function
62 HiLink remindConditional Conditional
63 HiLink remindComment Comment
Bram Moolenaar5c736222010-01-06 20:54:52 +010064 HiLink remindTimes String
Bram Moolenaar071d4272004-06-13 20:20:40 +000065 HiLink remindString String
66 HiLink remindDebug Debug
67 HiLink remindVar Identifier
68 HiLink remindSubst Constant
69 HiLink remindAdvanceNumber Number
Bram Moolenaar5c736222010-01-06 20:54:52 +010070 HiLink remindDateSeparators Comment
71 HiLink remindDates String
Bram Moolenaar9964e462007-05-05 17:54:07 +000072 HiLink remindWarning Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000073
74 delcommand HiLink
75endif
76
77let b:current_syntax = "remind"
78
79" vim: ts=8 sw=2