blob: 1ce67137c1c4b9378874ddfa496e7d5f8cb05e8e [file] [log] [blame]
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001" Vim syntax file
Bram Moolenaar42eeac32005-06-29 22:40:58 +00002" Language: Sieve filtering language input file
3" Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se>
4" Latest Revision: 2005-06-29
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00005
Bram Moolenaar42eeac32005-06-29 22:40:58 +00006if exists("b:current_syntax")
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00007 finish
8endif
9
Bram Moolenaar42eeac32005-06-29 22:40:58 +000010let s:cpo_save = &cpo
11set cpo&vim
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000012
Bram Moolenaar42eeac32005-06-29 22:40:58 +000013syn keyword sieveTodo contained TODO FIXME XXX NOTE
14
15syn region sieveComment matchgroup=sieveComment start='/\*' end='\*/'
16 \ contains=sieveTodo,@Spell
17syn region sieveComment matchgroup=sieveComment start='#' end='$'
18 \ contains=sieveTodo,@Spell
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000019
20syn case ignore
21
Bram Moolenaar42eeac32005-06-29 22:40:58 +000022syn match sieveTag display ':\h\w*'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000023
Bram Moolenaar42eeac32005-06-29 22:40:58 +000024syn match sieveNumber display '\<\d\+[KMG]\=\>'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000025
Bram Moolenaar42eeac32005-06-29 22:40:58 +000026syn match sieveSpecial display '\\["\\]'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000027
Bram Moolenaar42eeac32005-06-29 22:40:58 +000028syn region sieveString matchgroup=sieveString start=+"+
29 \ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial
30syn region sieveString matchgroup=sieveString start='text:' end='\n.\n'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000031
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000032syn keyword sieveConditional if elsif else
Bram Moolenaar42eeac32005-06-29 22:40:58 +000033syn keyword sieveTest address allof anyof envelope exists false header
34 \ not size true
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000035syn keyword sievePreProc require stop
Bram Moolenaar42eeac32005-06-29 22:40:58 +000036syn keyword sieveAction reject fileinto redirect keep discard
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000037syn match sieveKeyword '\<\h\w*\>'
38
Bram Moolenaar42eeac32005-06-29 22:40:58 +000039syn case match
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000040
Bram Moolenaar42eeac32005-06-29 22:40:58 +000041hi def link sieveTodo Todo
42hi def link sieveComment Comment
43hi def link sieveTag Type
44hi def link sieveNumber Number
45hi def link sieveSpecial Special
46hi def link sieveString String
47hi def link sieveConditional Conditional
48hi def link sieveTest Keyword
49hi def link sievePreProc PreProc
50hi def link sieveAction Keyword
51hi def link sieveKeyword Keyword
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000052
53let b:current_syntax = "sieve"
54
Bram Moolenaar42eeac32005-06-29 22:40:58 +000055let &cpo = s:cpo_save
56unlet s:cpo_save