blob: 8e4e5543433bd3003af2766599005d1327e2c1d9 [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020016" quit when a syntax file was already loaded
17if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000018 finish
19endif
20
Bram Moolenaar5c736222010-01-06 20:54:52 +010021" shut case off.
Bram Moolenaar071d4272004-06-13 20:20:40 +000022syn case ignore
23
24syn keyword remindCommands REM OMIT SET FSET UNSET
Bram Moolenaarb4ff5182015-11-10 21:15:48 +010025syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH
Bram Moolenaar071d4272004-06-13 20:20:40 +000026syn keyword remindTag PRIORITY TAG
27syn keyword remindTimed AT DURATION
28syn keyword remindMove ONCE SKIP BEFORE AFTER
Bram Moolenaar5c736222010-01-06 20:54:52 +010029syn 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 +000030syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
31syn keyword remindConditional IF ELSE ENDIF IFTRIG
Bram Moolenaar5c736222010-01-06 20:54:52 +010032syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
Bram Moolenaar071d4272004-06-13 20:20:40 +000033syn match remindComment "#.*$"
34syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
35syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
Bram Moolenaar071d4272004-06-13 20:20:40 +000036syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*"
37syn match remindSubst "%[^ ]"
38syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+"
Bram Moolenaar5c736222010-01-06 20:54:52 +010039" XXX: use different separators for dates and times?
40syn match remindDateSeparators "[/:@\.-]" contained
41syn match remindTimes "[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
42" XXX: why not match only valid dates? Ok, checking for 'Feb the 30' would
43" be impossible, but at least check for valid months and times.
44syn 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 +000045" This will match trailing whitespaces that seem to break rem2ps.
46" Courtesy of Michael Dunn.
47syn match remindWarning display excludenl "\S\s\+$"ms=s+1
48
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020050command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000051
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020052HiLink remindCommands Function
53HiLink remindExpiry Repeat
54HiLink remindTag Label
55HiLink remindTimed Statement
56HiLink remindMove Statement
57HiLink remindSpecial Include
58HiLink remindRun Function
59HiLink remindConditional Conditional
60HiLink remindComment Comment
61HiLink remindTimes String
62HiLink remindString String
63HiLink remindDebug Debug
64HiLink remindVar Identifier
65HiLink remindSubst Constant
66HiLink remindAdvanceNumber Number
67HiLink remindDateSeparators Comment
68HiLink remindDates String
69HiLink remindWarning Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000070
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020071delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
73let b:current_syntax = "remind"
74
75" vim: ts=8 sw=2