blob: fa369fc7371313a6752c3a71f63fc6b37597a860 [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>
Bram Moolenaar0dc065e2005-07-04 22:49:24 +00004" Latest Revision: 2005-07-04
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
Bram Moolenaar0dc065e2005-07-04 22:49:24 +000015syn region sieveComment start='/\*' end='\*/' contains=sieveTodo,@Spell
16syn region sieveComment display oneline start='#' end='$'
Bram Moolenaar42eeac32005-06-29 22:40:58 +000017 \ contains=sieveTodo,@Spell
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000018
19syn case ignore
20
Bram Moolenaar42eeac32005-06-29 22:40:58 +000021syn match sieveTag display ':\h\w*'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000022
Bram Moolenaar42eeac32005-06-29 22:40:58 +000023syn match sieveNumber display '\<\d\+[KMG]\=\>'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000024
Bram Moolenaar42eeac32005-06-29 22:40:58 +000025syn match sieveSpecial display '\\["\\]'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000026
Bram Moolenaar0dc065e2005-07-04 22:49:24 +000027syn region sieveString start=+"+ skip=+\\\\\|\\"+ end=+"+
28 \ contains=sieveSpecial
29syn region sieveString start='text:' end='\n.\n'
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000030
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000031syn keyword sieveConditional if elsif else
Bram Moolenaar42eeac32005-06-29 22:40:58 +000032syn keyword sieveTest address allof anyof envelope exists false header
33 \ not size true
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000034syn keyword sievePreProc require stop
Bram Moolenaar42eeac32005-06-29 22:40:58 +000035syn keyword sieveAction reject fileinto redirect keep discard
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000036syn match sieveKeyword '\<\h\w*\>'
37
Bram Moolenaar42eeac32005-06-29 22:40:58 +000038syn case match
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000039
Bram Moolenaar42eeac32005-06-29 22:40:58 +000040hi def link sieveTodo Todo
41hi def link sieveComment Comment
42hi def link sieveTag Type
43hi def link sieveNumber Number
44hi def link sieveSpecial Special
45hi def link sieveString String
46hi def link sieveConditional Conditional
47hi def link sieveTest Keyword
48hi def link sievePreProc PreProc
49hi def link sieveAction Keyword
50hi def link sieveKeyword Keyword
Bram Moolenaar293ee4d2004-12-09 21:34:53 +000051
52let b:current_syntax = "sieve"
53
Bram Moolenaar42eeac32005-06-29 22:40:58 +000054let &cpo = s:cpo_save
55unlet s:cpo_save