summaryrefslogtreecommitdiff
path: root/runtime/syntax/pf.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/syntax/pf.vim')
-rw-r--r--runtime/syntax/pf.vim75
1 files changed, 75 insertions, 0 deletions
diff --git a/runtime/syntax/pf.vim b/runtime/syntax/pf.vim
new file mode 100644
index 000000000..394cfb3e4
--- /dev/null
+++ b/runtime/syntax/pf.vim
@@ -0,0 +1,75 @@
+" pf syntax file
+" Language: OpenBSD packet filter configuration (pf.conf)
+" Maintainer: Camiel Dobbelaar <cd@sentia.nl>
+" Last Change: 2003 May 27
+
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+
+setlocal foldmethod=syntax
+syn sync fromstart
+
+syn cluster pfNotLS contains=pfComment,pfTodo,pfVarAssign
+syn keyword pfCmd altq anchor antispoof binat nat pass
+syn keyword pfCmd queue rdr scrub table set
+syn keyword pfService auth bgp domain finger ftp http https ident
+syn keyword pfService imap irc isakmp kerberos mail nameserver nfs
+syn keyword pfService nntp ntp pop3 portmap pptp rpcbind rsync smtp
+syn keyword pfService snmp snmptrap socks ssh sunrpc syslog telnet
+syn keyword pfService tftp www
+syn keyword pfTodo TODO XXX contained
+syn keyword pfWildAddr all any
+syn match pfCmd /block\s/
+syn match pfComment /#.*$/ contains=pfTodo
+syn match pfCont /\\$/
+syn match pfErrClose /}/
+syn match pfIPv4 /\d\{1,3}\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}/
+syn match pfIPv6 /[a-fA-F0-9:]*::[a-fA-F0-9:.]*/
+syn match pfIPv6 /[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/
+syn match pfNetmask /\/\d\+/
+syn match pfNum /[a-zA-Z0-9_:.]\@<!\d\+[a-zA-Z0-9_:.]\@!/
+syn match pfTable /<\s*[a-zA-Z][a-zA-Z0-9_]*\s*>/
+syn match pfVar /$[a-zA-Z][a-zA-Z0-9_]*/
+syn match pfVarAssign /^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1
+syn region pfFold1 start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold
+syn region pfFold2 start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold
+syn region pfFold3 start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold
+syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS
+syn region pfString start=/"/ end=/"/ transparent contains=ALLBUT,pfString,@pfNotLS
+syn region pfString start=/'/ end=/'/ transparent contains=ALLBUT,pfString,@pfNotLS
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_c_syn_inits")
+ if version < 508
+ let did_c_syn_inits = 1
+ command -nargs=+ HiLink hi link <args>
+ else
+ command -nargs=+ HiLink hi def link <args>
+ endif
+
+ HiLink pfCmd Statement
+ HiLink pfComment Comment
+ HiLink pfCont Statement
+ HiLink pfErrClose Error
+ HiLink pfIPv4 Type
+ HiLink pfIPv6 Type
+ HiLink pfNetmask Constant
+ HiLink pfNum Constant
+ HiLink pfService Constant
+ HiLink pfTable Identifier
+ HiLink pfTodo Todo
+ HiLink pfVar Identifier
+ HiLink pfVarAssign Identifier
+ HiLink pfWildAddr Type
+
+ delcommand HiLink
+endif
+
+let b:current_syntax = "pf"