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