Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 1 | " Vim syntax file |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 2 | " Language: Sieve filtering language input file |
| 3 | " Maintainer: Nikolai Weibull <nikolai+work.vim@bitwi.se> |
| 4 | " Latest Revision: 2005-06-29 |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 5 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 6 | if exists("b:current_syntax") |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 7 | finish |
| 8 | endif |
| 9 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 10 | let s:cpo_save = &cpo |
| 11 | set cpo&vim |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 12 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 13 | syn keyword sieveTodo contained TODO FIXME XXX NOTE |
| 14 | |
| 15 | syn region sieveComment matchgroup=sieveComment start='/\*' end='\*/' |
| 16 | \ contains=sieveTodo,@Spell |
| 17 | syn region sieveComment matchgroup=sieveComment start='#' end='$' |
| 18 | \ contains=sieveTodo,@Spell |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 19 | |
| 20 | syn case ignore |
| 21 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 22 | syn match sieveTag display ':\h\w*' |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 23 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 24 | syn match sieveNumber display '\<\d\+[KMG]\=\>' |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 25 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 26 | syn match sieveSpecial display '\\["\\]' |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 27 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 28 | syn region sieveString matchgroup=sieveString start=+"+ |
| 29 | \ skip=+\\\\\|\\"+ end=+"+ contains=sieveSpecial |
| 30 | syn region sieveString matchgroup=sieveString start='text:' end='\n.\n' |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 31 | |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 32 | syn keyword sieveConditional if elsif else |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 33 | syn keyword sieveTest address allof anyof envelope exists false header |
| 34 | \ not size true |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 35 | syn keyword sievePreProc require stop |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 36 | syn keyword sieveAction reject fileinto redirect keep discard |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 37 | syn match sieveKeyword '\<\h\w*\>' |
| 38 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 39 | syn case match |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 40 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 41 | hi def link sieveTodo Todo |
| 42 | hi def link sieveComment Comment |
| 43 | hi def link sieveTag Type |
| 44 | hi def link sieveNumber Number |
| 45 | hi def link sieveSpecial Special |
| 46 | hi def link sieveString String |
| 47 | hi def link sieveConditional Conditional |
| 48 | hi def link sieveTest Keyword |
| 49 | hi def link sievePreProc PreProc |
| 50 | hi def link sieveAction Keyword |
| 51 | hi def link sieveKeyword Keyword |
Bram Moolenaar | 293ee4d | 2004-12-09 21:34:53 +0000 | [diff] [blame] | 52 | |
| 53 | let b:current_syntax = "sieve" |
| 54 | |
Bram Moolenaar | 42eeac3 | 2005-06-29 22:40:58 +0000 | [diff] [blame] | 55 | let &cpo = s:cpo_save |
| 56 | unlet s:cpo_save |