1" Vim syntax file 2" Language: Remind 3" Maintainer: Davide Alberani <[email protected]> 4" Last Change: 02 Nov 2015 5" Version: 0.7 6" URL: http://ismito.it/vim/syntax/remind.vim 7" 8" 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) 15 16if version < 600 17 syntax clear 18elseif exists("b:current_syntax") 19 finish 20endif 21 22" shut case off. 23syn case ignore 24 25syn keyword remindCommands REM OMIT SET FSET UNSET 26syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH 27syn keyword remindTag PRIORITY TAG 28syn keyword remindTimed AT DURATION 29syn keyword remindMove ONCE SKIP BEFORE AFTER 30syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR 31syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON 32syn keyword remindConditional IF ELSE ENDIF IFTRIG 33syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE 34syn match remindComment "#.*$" 35syn region remindString start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline 36syn region remindString start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline 37syn match remindVar "\$[_a-zA-Z][_a-zA-Z0-9]*" 38syn match remindSubst "%[^ ]" 39syn match remindAdvanceNumber "\(\*\|+\|-\|++\|--\)[0-9]\+" 40" 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 46" 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 50 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 68 HiLink remindTimes String 69 HiLink remindString String 70 HiLink remindDebug Debug 71 HiLink remindVar Identifier 72 HiLink remindSubst Constant 73 HiLink remindAdvanceNumber Number 74 HiLink remindDateSeparators Comment 75 HiLink remindDates String 76 HiLink remindWarning Error 77 78 delcommand HiLink 79endif 80 81let b:current_syntax = "remind" 82 83" vim: ts=8 sw=2 84