1" Vim syntax file
2" Language:         lftp(1) configuration file
3" Maintainer:       Nikolai Weibull <now@bitwi.se>
4" Latest Revision:  2007-06-17
5
6if exists("b:current_syntax")
7  finish
8endif
9
10let s:cpo_save = &cpo
11set cpo&vim
12
13setlocal iskeyword+=-
14
15syn region  lftpComment         display oneline start='#' end='$'
16                                \ contains=lftpTodo,@Spell
17
18syn keyword lftpTodo            contained TODO FIXME XXX NOTE
19
20syn region  lftpString          contained display
21                                \ start=+"+ skip=+\\$\|\\"+ end=+"+ end=+$+
22
23syn match   lftpNumber          contained display '\<\d\+\(\.\d\+\)\=\>'
24
25syn keyword lftpBoolean         contained yes no on off true false
26
27syn keyword lftpInterval        contained infinity inf never forever
28syn match   lftpInterval        contained '\<\(\d\+\(\.\d\+\)\=[dhms]\)\+\>'
29
30syn keyword lftpKeywords        alias anon at bookmark cache cat cd chmod close
31                                \ cls command debug du echo exit fg find get
32                                \ get1 glob help history jobs kill lcd lftp
33                                \ lpwd ls mget mirror mkdir module more mput
34                                \ mrm mv nlist open pget put pwd queue quote
35                                \ reget recls rels renlist repeat reput rm
36                                \ rmdir scache site source suspend user version
37                                \ wait zcat zmore
38
39syn region  lftpSet             matchgroup=lftpKeywords
40                                \ start="set" end=";" end="$"
41                                \ contains=lftpString,lftpNumber,lftpBoolean,
42                                \ lftpInterval,lftpSettingsPrefix,lftpSettings
43syn match   lftpSettingsPrefix  contained '\<\%(bmk\|cache\|cmd\|color\|dns\):'
44syn match   lftpSettingsPrefix  contained '\<\%(file\|fish\|ftp\|hftp\):'
45syn match   lftpSettingsPrefix  contained '\<\%(http\|https\|mirror\|module\):'
46syn match   lftpSettingsPrefix  contained '\<\%(net\|sftp\|ssl\|xfer\):'
47" bmk:
48syn keyword lftpSettings        contained save-p[asswords]
49" cache:
50syn keyword lftpSettings        contained cache-em[pty-listings] en[able]
51                                \ exp[ire] siz[e]
52" cmd:
53syn keyword lftpSettings        contained at[-exit] cls-c[ompletion-default]
54                                \ cls-d[efault] cs[h-history]
55                                \ default-p[rotocol] default-t[itle]
56syn keyword lftpSettings        contained fai[l-exit] in[teractive]
57                                \ lo[ng-running] ls[-default] mo[ve-background]
58                                \ prom[pt]
59                                \ rem[ote-completion]
60                                \ save-c[wd-history] save-r[l-history]
61                                \ set-t[erm-status] statu[s-interval]
62                                \ te[rm-status] verb[ose] verify-h[ost]
63                                \ verify-path verify-path[-cached]
64" color:
65syn keyword lftpSettings        contained dir[-colors] use-c[olor]
66" dns:
67syn keyword lftpSettings        contained S[RV-query] cache-en[able]
68                                \ cache-ex[pire] cache-s[ize]
69                                \ fat[al-timeout] o[rder] use-fo[rk]
70" file:
71syn keyword lftpSettings        contained ch[arset]
72" fish:
73syn keyword lftpSettings        contained connect[-program] sh[ell]
74" ftp:
75syn keyword lftpSettings        contained acct anon-p[ass] anon-u[ser]
76                                \ au[to-sync-mode] b[ind-data-socket]
77                                \ ch[arset] cli[ent] dev[ice-prefix]
78                                \ fi[x-pasv-address] fxp-f[orce]
79                                \ fxp-p[assive-source] h[ome] la[ng]
80                                \ list-e[mpty-ok] list-o[ptions]
81                                \ nop[-interval] pas[sive-mode]
82                                \ port-i[pv4] port-r[ange] prox[y]
83                                \ rest-l[ist] rest-s[tor]
84                                \ retry-530 retry-530[-anonymous]
85                                \ sit[e-group] skey-a[llow]
86                                \ skey-f[orce] ssl-allow
87                                \ ssl-allow[-anonymous] ssl-au[th]
88                                \ ssl-f[orce] ssl-protect-d[ata]
89                                \ ssl-protect-l[ist] stat-[interval]
90                                \ sy[nc-mode] timez[one] use-a[bor]
91                                \ use-fe[at] use-fx[p] use-hf[tp]
92                                \ use-mdtm use-mdtm[-overloaded]
93                                \ use-ml[sd] use-p[ret] use-q[uit]
94                                \ use-site-c[hmod] use-site-i[dle]
95                                \ use-site-u[time] use-siz[e]
96                                \ use-st[at] use-te[lnet-iac]
97                                \ verify-a[ddress] verify-p[ort]
98                                \ w[eb-mode]
99" hftp:
100syn keyword lftpSettings        contained w[eb-mode] cache prox[y]
101                                \ use-au[thorization] use-he[ad] use-ty[pe]
102" http:
103syn keyword lftpSettings        contained accept accept-c[harset]
104                                \ accept-l[anguage] cache coo[kie]
105                                \ pos[t-content-type] prox[y]
106                                \ put-c[ontent-type] put-m[ethod] ref[erer]
107                                \ set-c[ookies] user[-agent]
108" https:
109syn keyword lftpSettings        contained prox[y]
110" mirror:
111syn keyword lftpSettings        contained exc[lude-regex] o[rder]
112                                \ parallel-d[irectories]
113                                \ parallel-t[ransfer-count] use-p[get-n]
114" module:
115syn keyword lftpSettings        contained pat[h]
116" net:
117syn keyword lftpSettings        contained connection-l[imit]
118                                \ connection-t[akeover] id[le] limit-m[ax]
119                                \ limit-r[ate] limit-total-m[ax]
120                                \ limit-total-r[ate] max-ret[ries] no-[proxy]
121                                \ pe[rsist-retries] reconnect-interval-b[ase]
122                                \ reconnect-interval-ma[x]
123                                \ reconnect-interval-mu[ltiplier]
124                                \ socket-bind-ipv4 socket-bind-ipv6
125                                \ socket-bu[ffer] socket-m[axseg] timeo[ut]
126" sftp:
127syn keyword lftpSettings        contained connect[-program]
128                                \ max-p[ackets-in-flight] prot[ocol-version]
129                                \ ser[ver-program] size-r[ead] size-w[rite]
130" ssl:
131syn keyword lftpSettings        contained ca-f[ile] ca-p[ath] ce[rt-file]
132                                \ crl-f[ile] crl-p[ath] k[ey-file]
133                                \ verify-c[ertificate]
134" xfer:
135syn keyword lftpSettings        contained clo[bber] dis[k-full-fatal]
136                                \ eta-p[eriod] eta-t[erse] mak[e-backup]
137                                \ max-red[irections] ra[te-period]
138
139hi def link lftpComment         Comment
140hi def link lftpTodo            Todo
141hi def link lftpString          String
142hi def link lftpNumber          Number
143hi def link lftpBoolean         Boolean
144hi def link lftpInterval        Number
145hi def link lftpKeywords        Keyword
146hi def link lftpSettingsPrefix  PreProc
147hi def link lftpSettings        Type
148
149let b:current_syntax = "lftp"
150
151let &cpo = s:cpo_save
152unlet s:cpo_save
153