summaryrefslogtreecommitdiff
path: root/.vim
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2020-01-09 19:16:59 +0000
committerMike Crute <mike@crute.us>2020-01-09 19:23:51 +0000
commit720408677dc1c1ce44ef0e80c19ebfa0d7f0585e (patch)
treefbe75d6bd51c20ef809cbe29056e5c0bb752519c /.vim
parent69822b0db3bda8729388756bfe9dda0d6c8d1751 (diff)
downloaddotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.tar.bz2
dotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.tar.xz
dotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.zip
Add BIRD syntax
Diffstat (limited to '.vim')
-rw-r--r--.vim/syntax/bird.vim141
1 files changed, 141 insertions, 0 deletions
diff --git a/.vim/syntax/bird.vim b/.vim/syntax/bird.vim
new file mode 100644
index 0000000..2d6b053
--- /dev/null
+++ b/.vim/syntax/bird.vim
@@ -0,0 +1,141 @@
1"----------------------------------------------------------------------
2" Vim syntax file
3" Language: Configuration for the Bird Internet Routing Daemon
4" Bird Site: http://bird.network.cz/
5" Maintainer: Mahlon E. Smith <mahlon@martini.nu>
6" Version: $Id: bird.vim,v bf8f3c788cad 2010/10/01 15:16:47 mahlon $
7"----------------------------------------------------------------------
8
9setlocal iskeyword+=;
10
11syntax region birdInlineComment start=/#/ end=/$/
12syntax region birdBlockComment start=/^#/ end=/^\([^#]\|$\)/me=e-1 fold
13highlight link birdInlineComment Comment
14highlight link birdBlockComment Comment
15
16syntax region birdString start=/"/ skip=/\\"/ end=/"/
17highlight link birdString String
18
19syntax match birdNetworkAddressIP4 /\d\+\.\d\+\.\d\+\.\d\+\(\/\d\+\)\?/
20highlight link birdNetworkAddressIP4 Character
21
22syntax match birdNetworkAddressIP6 /\([0-9a-fA-F]\+:[0-9a-fA-F:]\+\)\(\/\d\+\)\?/
23highlight link birdNetworkAddressIP6 Character
24
25syntax match birdNumber / \d\+\(;\|\s\|$\)/
26highlight link birdNumber Number
27
28syntax match birdOperator /\(+\|-\|*\|\/\|(\|)\|=\|<\|>\|!\|&&\|||\|\~\)/
29highlight link birdOperator Operator
30
31syntax region birdFunctionArguments start=/(/ end=/)/ oneline
32syntax region birdFunction matchgroup=birdFunctionArguments start=/\S\+(/ end=/)/ oneline transparent
33highlight link birdFunctionArguments Function
34
35syntax cluster birdCommon contains=birdInlineComment,birdString,birdNetworkAddressIP4,birdNetworkAddressIP6,birdNumber,birdOperator,birdFunction
36
37syntax keyword birdGlobals define table eval
38syntax match birdGlobals /\(router id\|listen bgp\) /
39highlight link birdGlobals PreProc
40
41syntax region birdLog start=/^log / end=/$/ keepend contains=@birdCommon,birdLogOptions,birdLogDirective,birdLogLevels
42syntax keyword birdLogOptions syslog stderr contained
43syntax keyword birdLogLevels all all; info warning error fatal trace remote auth bug contained
44syntax keyword birdLogDirective log contained
45highlight link birdLogOptions Identifier
46highlight link birdLogDirective PreProc
47highlight link birdLogLevels Special
48highlight link birdLog Normal
49
50syntax region birdDebug start=/debug / end=/$/ keepend contains=@birdCommon,birdDebugOptions,birdDebugDirective,birdDebugTypes
51syntax keyword birdDebugOptions protocols commands contained
52syntax keyword birdDebugTypes all all; off off; states routes filters interfaces events packets messages contained
53syntax keyword birdDebugDirective debug contained
54highlight link birdDebugOptions Identifier
55highlight link birdDebugDirective PreProc
56highlight link birdDebugTypes Special
57highlight link birdDebug Normal
58
59syntax region birdMrt start=/mrtdump / end=/$/ keepend contains=@birdCommon,birdMrtOptions,birdMrtDirective,birdMrtTypes
60syntax keyword birdMrtOptions protocols contained
61syntax keyword birdMrtTypes all all; off off; states messages contained
62syntax keyword birdMrtDirective mrtdump contained
63highlight link birdMrtOptions Identifier
64highlight link birdMrtDirective PreProc
65highlight link birdMrtTypes Special
66highlight link birdMrt Normal
67
68syntax cluster birdProtoShared contains=birdGlobals,birdDebug,birdMrt
69
70syntax region birdTimeFormat start=/^timeformat / end=/$/ keepend contains=@birdCommon,birdTimeFormatDirective,birdTimeFormatTypes
71syntax keyword birdTimeFormatTypes route protocol base log contained
72syntax keyword birdTimeFormatDirective timeformat contained
73highlight link birdTimeFormatDirective PreProc
74highlight link birdTimeFormatTypes Identifier
75highlight link birdTimeFormat Normal
76
77syntax region birdImportExport start=/\(import\|export\) / end=/$/ contains=@birdCommon,birdImportExportDirective,birdImportExportTypes,birdFilter,birdFilterProtoConstants,birdFilterAttributes
78syntax keyword birdImportExportDirective import export contained
79syntax keyword birdImportExportTypes all all; none none; where contained
80highlight link birdImportExportDirective Type
81highlight link birdImportExportTypes Special
82highlight link birdImportExport Normal
83
84syntax region birdProtocol start=/^protocol / end=/^};\?/ contains=@birdCommon,@birdProtoShared,birdProtocolDirective,birdProtocolTypes,birdProtocolMisc,birdProtocolGlobals,birdImportExport,birdProtocolDisabled,birdProtocolBools,birdProtocolDate,birdFilter,birdProtocolAttributes fold
85syntax keyword birdProtocolDirective protocol area ipv4 ipv6 interface networks stubnet neighbors contained
86syntax match birdProtocolDirective /virtual link / contained
87syntax keyword birdProtocolTypes bgp device direct kernel ospf pipe rip static contained
88syntax keyword birdProtocolMisc as via self self; drop drop; ignore ignore; normal; large; broadcast; nonbroadcast nonbroadcast; pointopoint; none; simple; plain; md5; cryptographic; eligible; opaque; transparent; always; never; neighbor; multicast; reject; prohibit; contained
89syntax keyword birdProtocolGlobals preference description id password type local neighbor multihop passive passive; persist persist; learn learn; primary rfc1583compat rfc1583compat; tick hidden hidden; summary summary; cost stub stub; hello poll retransmit priority wait authentication strict honor port infinity period mode route contained
90syntax match birdProtocolGlobals /generate from\|generate to\|accept from\|accept to\|next hop\|missing lladdr\|source address\|rr client\|rr cluster id\|rs client\|enable route refresh\|interpret communities\|enable as4\|capabilities\|advertise ipv4\|route limit\|disable after error\|\(startup \)\?hold time\|\(scan\|keepalive\|timeout\|garbage\|connect retry\|start delay\|error \(wait\|forget\)\) time\|path metric\|prefer older\|default bgp_med\|default bgp_local_pref\|device routes\|\(kernel\|peer\) table\|stub cost\|dead\( count\)\?\|rx buffer/ contained
91syntax match birdProtocolDate /\d\{2\}-\d\{2\}-\d\{4\} \d\{2\}:\d\{2\}:\d\{2\}/ contained
92syntax keyword birdProtocolDisabled disabled disabled; contained
93syntax keyword birdProtocolBools yes yes; no no; contained
94syntax match birdProtocolAttributes /bgp_path\|bgp_local_pref\|bgp_med\|bgp_origin\|bgp_next_hop\|bgp_atomic_aggr\|bgp_community\|bgp_originator_id\|bgp_cluster_list\|ospf_metric1\|ospf_metric2\|ospf_tag\|rip_metric\|rip_tag/ contained
95highlight link birdProtocolDirective PreProc
96highlight link birdProtocolTypes Function
97highlight link birdProtocolMisc String
98highlight link birdProtocolGlobals Constant
99highlight link birdProtocolDisabled Error
100highlight link birdProtocolBools Boolean
101highlight link birdProtocolDate Number
102highlight link birdProtocolAttributes Identifier
103highlight link birdProtocol Normal
104
105syntax region birdTemplate start=/^template / end=/^};\?/ contains=@birdCommon,birdProtocol,birdTemplateDirective,birdProtocolTypes,birdProtoShared,birdProtocolDirective,birdProtocolMisc,birdProtocolGlobals,birdImportExport,birdProtocolDisabled,birdProtocolBools,birdProtocolDate,birdFilter,birdProtocolAttributes fold
106syntax keyword birdTemplateDirective template contained
107highlight link birdTemplateDirective PreProc
108highlight link birdTemplate Normal
109
110syntax keyword birdInternalFunctions accept accept; reject reject; print printn return quitbird defined contained
111syntax keyword birdInternalControls if then else case contained
112syntax keyword birdInternalTypes bool int pair quad string ip prefix enum bgppath bgpmask clist contained
113highlight link birdInternalFunctions Keyword
114highlight link birdInternalControls Conditional
115highlight link birdInternalTypes Type
116
117" inline, named filters
118syntax match birdFilter /filter.\+$/ contains=@birdCommon,birdFilterDirective
119" filter definitions
120syntax region birdFilter start=/^filter\(\s\+\S\+\)\?\s\+/ end=/^}$/ fold contains=@birdCommon,birdFilterDirective,birdFilterProtoConstants,birdInternalFunctions,birdFilterAttributes,birdInternalControls,birdInternalTypes,birdProtocolAttributes
121" inline complex filters
122syntax region birdFilter start=/filter\s\+{/ end=/};/ fold contains=@birdCommon,birdFilterDirective,birdFilterProtoConstants,birdInternalFunctions,birdFilterAttributes,birdInternalControls,birdInternalTypes,birdProtocolAttributes
123syntax match birdFilterDirective /filter/ nextgroup=birdFilterName skipwhite contained
124syntax match birdFilterName /[^{;]\+/ skipwhite contained
125syntax match birdFilterProtoConstants /\(RTS_DUMMY\|RTS_STATIC\|RTS_INHERIT\|RTS_DEVICE\|RTS_STATIC_DEVICE\|RTS_REDIRECT\|RTS_RIP\|RTS_OSPF\|RTS_OSPF_IA\|RTS_OSPF_EXT1\|RTS_OSPF_EXT2\|RTS_BGP\|RTS_PIPE\)/ contained
126syntax keyword birdFilterAttributes net scope preference from gw proto source cast dest contained
127highlight link birdFilterDirective PreProc
128highlight link birdFilterName Function
129highlight link birdFilterProtoConstants Underlined
130highlight link birdFilterAttributes Identifier
131highlight link birdFilter Normal
132
133syntax region birdFunctionDef start=/^function\(\s\+\S\+\)\?\s\+/ end=/^};\?/ fold contains=@birdCommon,birdFunctionDirective,birdInternalFunctions,birdInternalControls,birdInternalTypes
134syntax match birdFunctionDirective /function / nextgroup=birdFunctionName skipwhite contained
135syntax match birdFunctionName /[^(]\+/ skipwhite contained
136highlight link birdFunctionDirective PreProc
137highlight link birdFunctionName Function
138highlight link birdFunctionDef Normal
139
140let b:current_syntax = "bird"
141