1" Vim syntax file
2" Language:         fetchmail(1) RC File
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2006-04-19
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13syn keyword fetchmailTodo       contained FIXME TODO XXX NOTE
14
15syn region  fetchmailComment    start='#' end='$' contains=fetchmailTodo,@Spell
16
17syn match   fetchmailNumber     display '\<\d\+\>'
18
19syn region  fetchmailString     start=+"+ skip=+\\\\\|\\"+ end=+"+
20                                \ contains=fetchmailStringEsc
21syn region  fetchmailString     start=+'+ skip=+\\\\\|\\'+ end=+'+
22                                \ contains=fetchmailStringEsc
23
24syn match   fetchmailStringEsc  contained '\\\([ntb]\|0\d*\|x\x\+\)'
25
26syn region  fetchmailKeyword    transparent matchgroup=fetchmailKeyword
27                                \ start='\<poll\|skip\|defaults\>'
28                                \ end='\<poll\|skip\|defaults\>'
29                                \ contains=ALLBUT,fetchmailOptions,fetchmailSet
30
31syn keyword fetchmailServerOpts contained via proto[col] local[domains] port
32                                \ auth[enticate] timeout envelope qvirtual aka
33                                \ interface monitor plugin plugout dns
34                                \ checkalias uidl interval netsec principal
35                                \ esmtpname esmtppassword
36                                \ sslcertck sslcertpath sslfingerprint
37syn match   fetchmailServerOpts contained '\<no\_s\+\(envelope\|dns\|checkalias\|uidl\)'
38
39syn keyword fetchmailUserOpts   contained user[name] is to pass[word] ssl
40                                \ sslcert sslkey sslproto folder smtphost
41                                \ fetchdomains smtpaddress smtpname antispam
42                                \ mda bsmtp preconnect postconnect keep flush
43                                \ fetchall rewrite stripcr forcecr pass8bits
44                                \ dropstatus dropdelivered mimedecode idle
45                                \ limit warnings batchlimit fetchlimit expunge
46                                \ tracepolls properties
47syn match   fetchmailUserOpts   contained '\<no\_s\+\(keep\|flush\|fetchall\|rewrite\|stripcr\|forcecr\|pass8bits\|dropstatus\|dropdelivered\|mimedecode\|noidle\)'
48
49syn keyword fetchmailSpecial    contained here there
50
51syn keyword fetchmailNoise      and with has wants options
52syn match   fetchmailNoise      display '[:;,]'
53
54syn keyword fetchmailSet        nextgroup=fetchmailOptions skipwhite skipnl set
55
56syn keyword fetchmailOptions    daemon postmaster bouncemail spambounce logfile
57                                \ idfile syslog nosyslog properties
58syn match   fetchmailOptions    '\<no\_s\+\(bouncemail\|spambounce\)'
59
60hi def link fetchmailComment    Comment
61hi def link fetchmailTodo       Todo
62hi def link fetchmailNumber     Number
63hi def link fetchmailString     String
64hi def link fetchmailStringEsc  SpecialChar
65hi def link fetchmailKeyword    Keyword
66hi def link fetchmailServerOpts Identifier
67hi def link fetchmailUserOpts   Identifier
68hi def link fetchmailSpecial    Special
69hi def link fetchmailSet        Keyword
70hi def link fetchmailOptions    Identifier
71
72let b:current_syntax = "fetchmail"
73
74let &cpo = s:cpo_save
75unlet s:cpo_save
76