xref: /vim-8.2.3635/runtime/syntax/remind.vim (revision 36e294c0)
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