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