blob: 9e7ff22e14dfb4d1123d4b6f9ad415c21de47ec5 [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 Moolenaar071d4272004-06-13 20:20:40 +000050
Bram Moolenaarf37506f2016-08-31 22:22:10 +020051hi def link remindCommands Function
52hi def link remindExpiry Repeat
53hi def link remindTag Label
54hi def link remindTimed Statement
55hi def link remindMove Statement
56hi def link remindSpecial Include
57hi def link remindRun Function
58hi def link remindConditional Conditional
59hi def link remindComment Comment
60hi def link remindTimes String
61hi def link remindString String
62hi def link remindDebug Debug
63hi def link remindVar Identifier
64hi def link remindSubst Constant
65hi def link remindAdvanceNumber Number
66hi def link remindDateSeparators Comment
67hi def link remindDates String
68hi def link remindWarning Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000069
Bram Moolenaar071d4272004-06-13 20:20:40 +000070
71let b:current_syntax = "remind"
72
73" vim: ts=8 sw=2