This commit is contained in:
Adam Stankiewicz
2021-06-09 21:00:49 +02:00
parent dec65bafca
commit 26095dda91
3 changed files with 90 additions and 0 deletions

28
ftplugin/nftables.vim Normal file
View File

@@ -0,0 +1,28 @@
if polyglot#init#is_disabled(expand('<sfile>:p'), 'nftables', 'ftplugin/nftables.vim')
finish
endif
if exists('b:did_ftplugin')
finish
endif
let b:did_ftplugin = 1
let s:save_cpo = &cpoptions
set cpoptions&vim
setlocal smartindent nocindent
setlocal commentstring=#%s
setlocal formatoptions-=t formatoptions+=croqnlj
setlocal comments=b:#
setlocal tabstop=4 shiftwidth=4 softtabstop=4 expandtab
setlocal textwidth=99
let b:undo_ftplugin = '
\ setlocal formatoptions< comments< commentstring<
\|setlocal tabstop< shiftwidth< softtabstop< expandtab< textwidth<
\'
let &cpoptions = s:save_cpo
unlet s:save_cpo

21
indent/nftables.vim Normal file
View File

@@ -0,0 +1,21 @@
if polyglot#init#is_disabled(expand('<sfile>:p'), 'nftables', 'indent/nftables.vim')
finish
endif
" Only load this indent file when no other was loaded.
if exists('b:did_indent')
finish
endif
let b:did_indent = 1
setlocal cindent
setlocal cinoptions=L0,(0,Ws,J1,j1,+N
setlocal cinkeys=0{,0},!^F,o,O,0[,0]
" Don't think cinwords will actually do anything at all... never mind
setlocal cinwords=table,chain
" Some preliminary settings
setlocal nolisp " Make sure lisp indenting doesn't supersede us
setlocal autoindent " indentexpr isn't much help otherwise
" Also do indentkeys, otherwise # gets shoved to column 0 :-/
setlocal indentkeys=0{,0},!^F,o,O,0[,0]

41
syntax/nftables.vim Normal file
View File

@@ -0,0 +1,41 @@
if polyglot#init#is_disabled(expand('<sfile>:p'), 'nftables', 'syntax/nftables.vim')
finish
endif
if exists('b:current_syntax')
finish
endif
syn match nftablesSet /{.*}/ contains=nftablesSetEntry
syn match nftablesSetEntry /[a-zA-Z0-9]\+/ contained
hi def link nftablesSet Keyword
hi def link nftablesSetEntry Operator
syn match nftablesNumber "\<[0-9A-Fa-f./:]\+\>" contains=nftablesMask,nftablesDelimiter
syn match nftablesHex "\<0x[0-9A-Fa-f]\+\>"
syn match nftablesDelimiter "[./:]" contained
syn match nftablesMask "/[0-9.]\+" contained contains=nftablesDelimiter
hi def link nftablesNumber Number
hi def link nftablesHex Number
hi def link nftablesDelimiter Operator
hi def link nftablesMask Operator
syn region Comment start=/#/ end=/$/
syn region String start=/"/ end=/"/
syn keyword Function flush
syn keyword Function table chain map
syn keyword Statement type hook
syn keyword Type ip ip6 inet arp bridge
syn keyword Type filter nat route
syn keyword Type ether vlan arp ip icmp igmp ip6 icmpv6 tcp udp udplite sctp dccp ah esp comp icmpx
syn keyword Type ct
syn keyword Type length protocol priority mark iif iifname iiftype oif oifname oiftype skuid skgid rtclassid
syn keyword Constant prerouting input forward output postrouting
syn keyword Special snat dnat masquerade redirect
syn keyword Special accept drop reject queue
syn keyword Keyword continue return jump goto
syn keyword Keyword counter log limit
syn keyword Keyword define
let b:current_syntax = 'nftables'