2 " Language: Sieve filtering language input file
3 " Maintainer: Nikolai Weibull <now@bitwi.se>
4 " Latest Revision: 2007-10-25
6 if exists("b:current_syntax")
13 syn keyword sieveTodo contained TODO FIXME XXX NOTE
15 syn region sieveComment start='/\*' end='\*/' contains=sieveTodo,@Spell
16 syn region sieveComment display oneline start='#' end='$'
17 \ contains=sieveTodo,@Spell
21 syn match sieveTag display ':\h\w*'
23 syn match sieveNumber display '\<\d\+[KMG]\=\>'
25 syn match sieveSpecial display '\\["\\]'
27 syn region sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+
28 \ contains=sieveSpecial
29 syn region sieveString start='text:' end='\n.\n'
31 syn keyword sieveConditional if elsif else
32 syn keyword sieveTest address allof anyof envelope exists false header
34 syn keyword sievePreProc require stop
35 syn keyword sieveAction reject fileinto redirect keep discard
36 syn keyword sieveKeyword vacation
40 hi def link sieveTodo Todo
41 hi def link sieveComment Comment
42 hi def link sieveTag Type
43 hi def link sieveNumber Number
44 hi def link sieveSpecial Special
45 hi def link sieveString String
46 hi def link sieveConditional Conditional
47 hi def link sieveTest Keyword
48 hi def link sievePreProc PreProc
49 hi def link sieveAction Function
50 hi def link sieveKeyword Keyword
52 let b:current_syntax = "sieve"