diff options
author | Mike Crute <mike@crute.us> | 2020-01-09 19:16:59 +0000 |
---|---|---|
committer | Mike Crute <mike@crute.us> | 2020-01-09 19:23:51 +0000 |
commit | 720408677dc1c1ce44ef0e80c19ebfa0d7f0585e (patch) | |
tree | fbe75d6bd51c20ef809cbe29056e5c0bb752519c /.vim | |
parent | 69822b0db3bda8729388756bfe9dda0d6c8d1751 (diff) | |
download | dotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.tar.bz2 dotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.tar.xz dotfiles-720408677dc1c1ce44ef0e80c19ebfa0d7f0585e.zip |
Add BIRD syntax
Diffstat (limited to '.vim')
-rw-r--r-- | .vim/syntax/bird.vim | 141 |
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 | |||
9 | setlocal iskeyword+=; | ||
10 | |||
11 | syntax region birdInlineComment start=/#/ end=/$/ | ||
12 | syntax region birdBlockComment start=/^#/ end=/^\([^#]\|$\)/me=e-1 fold | ||
13 | highlight link birdInlineComment Comment | ||
14 | highlight link birdBlockComment Comment | ||
15 | |||
16 | syntax region birdString start=/"/ skip=/\\"/ end=/"/ | ||
17 | highlight link birdString String | ||
18 | |||
19 | syntax match birdNetworkAddressIP4 /\d\+\.\d\+\.\d\+\.\d\+\(\/\d\+\)\?/ | ||
20 | highlight link birdNetworkAddressIP4 Character | ||
21 | |||
22 | syntax match birdNetworkAddressIP6 /\([0-9a-fA-F]\+:[0-9a-fA-F:]\+\)\(\/\d\+\)\?/ | ||
23 | highlight link birdNetworkAddressIP6 Character | ||
24 | |||
25 | syntax match birdNumber / \d\+\(;\|\s\|$\)/ | ||
26 | highlight link birdNumber Number | ||
27 | |||
28 | syntax match birdOperator /\(+\|-\|*\|\/\|(\|)\|=\|<\|>\|!\|&&\|||\|\~\)/ | ||
29 | highlight link birdOperator Operator | ||
30 | |||
31 | syntax region birdFunctionArguments start=/(/ end=/)/ oneline | ||
32 | syntax region birdFunction matchgroup=birdFunctionArguments start=/\S\+(/ end=/)/ oneline transparent | ||
33 | highlight link birdFunctionArguments Function | ||
34 | |||
35 | syntax cluster birdCommon contains=birdInlineComment,birdString,birdNetworkAddressIP4,birdNetworkAddressIP6,birdNumber,birdOperator,birdFunction | ||
36 | |||
37 | syntax keyword birdGlobals define table eval | ||
38 | syntax match birdGlobals /\(router id\|listen bgp\) / | ||
39 | highlight link birdGlobals PreProc | ||
40 | |||
41 | syntax region birdLog start=/^log / end=/$/ keepend contains=@birdCommon,birdLogOptions,birdLogDirective,birdLogLevels | ||
42 | syntax keyword birdLogOptions syslog stderr contained | ||
43 | syntax keyword birdLogLevels all all; info warning error fatal trace remote auth bug contained | ||
44 | syntax keyword birdLogDirective log contained | ||
45 | highlight link birdLogOptions Identifier | ||
46 | highlight link birdLogDirective PreProc | ||
47 | highlight link birdLogLevels Special | ||
48 | highlight link birdLog Normal | ||
49 | |||
50 | syntax region birdDebug start=/debug / end=/$/ keepend contains=@birdCommon,birdDebugOptions,birdDebugDirective,birdDebugTypes | ||
51 | syntax keyword birdDebugOptions protocols commands contained | ||
52 | syntax keyword birdDebugTypes all all; off off; states routes filters interfaces events packets messages contained | ||
53 | syntax keyword birdDebugDirective debug contained | ||
54 | highlight link birdDebugOptions Identifier | ||
55 | highlight link birdDebugDirective PreProc | ||
56 | highlight link birdDebugTypes Special | ||
57 | highlight link birdDebug Normal | ||
58 | |||
59 | syntax region birdMrt start=/mrtdump / end=/$/ keepend contains=@birdCommon,birdMrtOptions,birdMrtDirective,birdMrtTypes | ||
60 | syntax keyword birdMrtOptions protocols contained | ||
61 | syntax keyword birdMrtTypes all all; off off; states messages contained | ||
62 | syntax keyword birdMrtDirective mrtdump contained | ||
63 | highlight link birdMrtOptions Identifier | ||
64 | highlight link birdMrtDirective PreProc | ||
65 | highlight link birdMrtTypes Special | ||
66 | highlight link birdMrt Normal | ||
67 | |||
68 | syntax cluster birdProtoShared contains=birdGlobals,birdDebug,birdMrt | ||
69 | |||
70 | syntax region birdTimeFormat start=/^timeformat / end=/$/ keepend contains=@birdCommon,birdTimeFormatDirective,birdTimeFormatTypes | ||
71 | syntax keyword birdTimeFormatTypes route protocol base log contained | ||
72 | syntax keyword birdTimeFormatDirective timeformat contained | ||
73 | highlight link birdTimeFormatDirective PreProc | ||
74 | highlight link birdTimeFormatTypes Identifier | ||
75 | highlight link birdTimeFormat Normal | ||
76 | |||
77 | syntax region birdImportExport start=/\(import\|export\) / end=/$/ contains=@birdCommon,birdImportExportDirective,birdImportExportTypes,birdFilter,birdFilterProtoConstants,birdFilterAttributes | ||
78 | syntax keyword birdImportExportDirective import export contained | ||
79 | syntax keyword birdImportExportTypes all all; none none; where contained | ||
80 | highlight link birdImportExportDirective Type | ||
81 | highlight link birdImportExportTypes Special | ||
82 | highlight link birdImportExport Normal | ||
83 | |||
84 | syntax region birdProtocol start=/^protocol / end=/^};\?/ contains=@birdCommon,@birdProtoShared,birdProtocolDirective,birdProtocolTypes,birdProtocolMisc,birdProtocolGlobals,birdImportExport,birdProtocolDisabled,birdProtocolBools,birdProtocolDate,birdFilter,birdProtocolAttributes fold | ||
85 | syntax keyword birdProtocolDirective protocol area ipv4 ipv6 interface networks stubnet neighbors contained | ||
86 | syntax match birdProtocolDirective /virtual link / contained | ||
87 | syntax keyword birdProtocolTypes bgp device direct kernel ospf pipe rip static contained | ||
88 | syntax 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 | ||
89 | syntax 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 | ||
90 | syntax 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 | ||
91 | syntax match birdProtocolDate /\d\{2\}-\d\{2\}-\d\{4\} \d\{2\}:\d\{2\}:\d\{2\}/ contained | ||
92 | syntax keyword birdProtocolDisabled disabled disabled; contained | ||
93 | syntax keyword birdProtocolBools yes yes; no no; contained | ||
94 | syntax 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 | ||
95 | highlight link birdProtocolDirective PreProc | ||
96 | highlight link birdProtocolTypes Function | ||
97 | highlight link birdProtocolMisc String | ||
98 | highlight link birdProtocolGlobals Constant | ||
99 | highlight link birdProtocolDisabled Error | ||
100 | highlight link birdProtocolBools Boolean | ||
101 | highlight link birdProtocolDate Number | ||
102 | highlight link birdProtocolAttributes Identifier | ||
103 | highlight link birdProtocol Normal | ||
104 | |||
105 | syntax region birdTemplate start=/^template / end=/^};\?/ contains=@birdCommon,birdProtocol,birdTemplateDirective,birdProtocolTypes,birdProtoShared,birdProtocolDirective,birdProtocolMisc,birdProtocolGlobals,birdImportExport,birdProtocolDisabled,birdProtocolBools,birdProtocolDate,birdFilter,birdProtocolAttributes fold | ||
106 | syntax keyword birdTemplateDirective template contained | ||
107 | highlight link birdTemplateDirective PreProc | ||
108 | highlight link birdTemplate Normal | ||
109 | |||
110 | syntax keyword birdInternalFunctions accept accept; reject reject; print printn return quitbird defined contained | ||
111 | syntax keyword birdInternalControls if then else case contained | ||
112 | syntax keyword birdInternalTypes bool int pair quad string ip prefix enum bgppath bgpmask clist contained | ||
113 | highlight link birdInternalFunctions Keyword | ||
114 | highlight link birdInternalControls Conditional | ||
115 | highlight link birdInternalTypes Type | ||
116 | |||
117 | " inline, named filters | ||
118 | syntax match birdFilter /filter.\+$/ contains=@birdCommon,birdFilterDirective | ||
119 | " filter definitions | ||
120 | syntax region birdFilter start=/^filter\(\s\+\S\+\)\?\s\+/ end=/^}$/ fold contains=@birdCommon,birdFilterDirective,birdFilterProtoConstants,birdInternalFunctions,birdFilterAttributes,birdInternalControls,birdInternalTypes,birdProtocolAttributes | ||
121 | " inline complex filters | ||
122 | syntax region birdFilter start=/filter\s\+{/ end=/};/ fold contains=@birdCommon,birdFilterDirective,birdFilterProtoConstants,birdInternalFunctions,birdFilterAttributes,birdInternalControls,birdInternalTypes,birdProtocolAttributes | ||
123 | syntax match birdFilterDirective /filter/ nextgroup=birdFilterName skipwhite contained | ||
124 | syntax match birdFilterName /[^{;]\+/ skipwhite contained | ||
125 | syntax 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 | ||
126 | syntax keyword birdFilterAttributes net scope preference from gw proto source cast dest contained | ||
127 | highlight link birdFilterDirective PreProc | ||
128 | highlight link birdFilterName Function | ||
129 | highlight link birdFilterProtoConstants Underlined | ||
130 | highlight link birdFilterAttributes Identifier | ||
131 | highlight link birdFilter Normal | ||
132 | |||
133 | syntax region birdFunctionDef start=/^function\(\s\+\S\+\)\?\s\+/ end=/^};\?/ fold contains=@birdCommon,birdFunctionDirective,birdInternalFunctions,birdInternalControls,birdInternalTypes | ||
134 | syntax match birdFunctionDirective /function / nextgroup=birdFunctionName skipwhite contained | ||
135 | syntax match birdFunctionName /[^(]\+/ skipwhite contained | ||
136 | highlight link birdFunctionDirective PreProc | ||
137 | highlight link birdFunctionName Function | ||
138 | highlight link birdFunctionDef Normal | ||
139 | |||
140 | let b:current_syntax = "bird" | ||
141 | |||