blob: 394cfb3e4a12f1868868178c076775395077c241 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" pf syntax file
2" Language: OpenBSD packet filter configuration (pf.conf)
3" Maintainer: Camiel Dobbelaar <cd@sentia.nl>
4" Last Change: 2003 May 27
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9 syntax clear
10elseif exists("b:current_syntax")
11 finish
12endif
13
14setlocal foldmethod=syntax
15syn sync fromstart
16
17syn cluster pfNotLS contains=pfComment,pfTodo,pfVarAssign
18syn keyword pfCmd altq anchor antispoof binat nat pass
19syn keyword pfCmd queue rdr scrub table set
20syn keyword pfService auth bgp domain finger ftp http https ident
21syn keyword pfService imap irc isakmp kerberos mail nameserver nfs
22syn keyword pfService nntp ntp pop3 portmap pptp rpcbind rsync smtp
23syn keyword pfService snmp snmptrap socks ssh sunrpc syslog telnet
24syn keyword pfService tftp www
25syn keyword pfTodo TODO XXX contained
26syn keyword pfWildAddr all any
27syn match pfCmd /block\s/
28syn match pfComment /#.*$/ contains=pfTodo
29syn match pfCont /\\$/
30syn match pfErrClose /}/
31syn match pfIPv4 /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
32syn match pfIPv6 /[a-fA-F0-9:]*::[a-fA-F0-9:.]*/
33syn match pfIPv6 /[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/
34syn match pfNetmask /\/\d\+/
35syn match pfNum /[a-zA-Z0-9_:.]\@<!\d\+[a-zA-Z0-9_:.]\@!/
36syn match pfTable /<\s*[a-zA-Z][a-zA-Z0-9_]*\s*>/
37syn match pfVar /$[a-zA-Z][a-zA-Z0-9_]*/
38syn match pfVarAssign /^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1
39syn region pfFold1 start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold
40syn region pfFold2 start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold
41syn region pfFold3 start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold
42syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS
43syn region pfString start=/"/ end=/"/ transparent contains=ALLBUT,pfString,@pfNotLS
44syn region pfString start=/'/ end=/'/ transparent contains=ALLBUT,pfString,@pfNotLS
45
46" Define the default highlighting.
47" For version 5.7 and earlier: only when not done already
48" For version 5.8 and later: only when an item doesn't have highlighting yet
49if version >= 508 || !exists("did_c_syn_inits")
50 if version < 508
51 let did_c_syn_inits = 1
52 command -nargs=+ HiLink hi link <args>
53 else
54 command -nargs=+ HiLink hi def link <args>
55 endif
56
57 HiLink pfCmd Statement
58 HiLink pfComment Comment
59 HiLink pfCont Statement
60 HiLink pfErrClose Error
61 HiLink pfIPv4 Type
62 HiLink pfIPv6 Type
63 HiLink pfNetmask Constant
64 HiLink pfNum Constant
65 HiLink pfService Constant
66 HiLink pfTable Identifier
67 HiLink pfTodo Todo
68 HiLink pfVar Identifier
69 HiLink pfVarAssign Identifier
70 HiLink pfWildAddr Type
71
72 delcommand HiLink
73endif
74
75let b:current_syntax = "pf"