xref: /vim-8.2.3635/runtime/syntax/sieve.vim (revision 293ee4d4)
1" Vim syntax file
2" Maintainer:	    Nikolai Weibull <[email protected]>
3" URL:		    http://www.pcppopper.org/
4" Latest Revision:  2004-11-11
5" arch-tag:	    356fad6d-ff6b-453c-bd25-7fc63c4758bc
6
7if version < 600
8  syntax clear
9elseif exists("b:current_syntax")
10  finish
11endif
12
13" Todo
14syn keyword sieveTodo	  contained TODO FIXME XXX NOTE
15
16" Comments
17syn region  sieveComment  matchgroup=sieveComment start='/\*' end='\*/' contains=sieveTodo
18syn region  sieveComment  matchgroup=sieveComment start='#' end='$' contains=sieveTodo
19
20syn case ignore
21
22" Tags
23syn match   sieveTag	  ':\h\w*'
24
25" Numbers
26syn match   sieveNumber	  '\d\+[KMG]\='
27
28" Specials
29syn match   sieveSpecial  '\\["\\]'
30
31" Strings
32syn region  sieveString	  matchgroup=sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
33syn region  sieveString	  matchgroup=sieveString start='text:' end='\n.\n'
34
35" Keywords
36syn keyword sieveConditional  if elsif else
37syn keyword sieveTest	      address allof anyof envelope exists false header not size true
38syn keyword sievePreProc      require stop
39syn keyword sieveAction	      reject fileinto redirect keep discard
40syn match   sieveKeyword      '\<\h\w*\>'
41
42" Define the default highlighting.
43" For version 5.7 and earlier: only when not done already
44" For version 5.8 and later: only when an item doesn't have highlighting yet
45if version >= 508 || !exists("did_sieve_syn_inits")
46  if version < 508
47    let did_sieve_syn_inits = 1
48    command -nargs=+ HiLink hi link <args>
49  else
50    command -nargs=+ HiLink hi def link <args>
51  endif
52
53  HiLink sieveTodo	  Todo
54  HiLink sieveComment	  Comment
55  HiLink sieveTag	  Type
56  HiLink sieveNumber	  Number
57  HiLink sieveSpecial	  Special
58  HiLink sieveString	  String
59  HiLink sieveConditional Conditional
60  HiLink sieveTest	  Keyword
61  HiLink sievePreProc	  PreProc
62  HiLink sieveAction	  Keyword
63  HiLink sieveKeyword	  Keyword
64
65  delcommand HiLink
66endif
67
68let b:current_syntax = "sieve"
69
70" vim: set sts=2 sw=2:
71