xref: /vim-8.2.3635/runtime/syntax/resolv.vim (revision 577fadfc)
1" Vim syntax file
2" Language: resolver configuration file
3" Maintainer: Radu Dineiu <[email protected]>
4" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
5" Last Change: 2013 May 21
6" Version: 1.0
7"
8" Credits:
9"   David Necas (Yeti) <[email protected]>
10"   Stefano Zacchiroli <[email protected]>
11
12" quit when a syntax file was already loaded
13if exists("b:current_syntax")
14	finish
15endif
16
17" Errors, comments and operators
18syn match resolvError /./
19syn match resolvComment /\s*[#;].*$/
20syn match resolvOperator /[\/:]/ contained
21
22" IP
23syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
24syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
25syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
26
27" General
28syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
29syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
30syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
31
32" Particular
33syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
34syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
35syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster
36
37" Identifiers
38syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
39syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
40syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
41syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
42syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
43syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
44
45" Options
46syn match resolvOption /\<\%(debug\|no_tld_query\|rotate\|no-check-names\|inet6\)\>/ contained nextgroup=resolvOption skipwhite
47syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite
48
49" Additional errors
50syn match resolvError /^search .\{257,}/
51
52
53hi def link resolvIP Number
54hi def link resolvIPNetmask Number
55hi def link resolvHostname String
56hi def link resolvOption String
57
58hi def link resolvIPNameserver Number
59hi def link resolvHostnameSearch String
60hi def link resolvIPNetmaskSortList Number
61
62hi def link resolvNameServer Identifier
63hi def link resolvLwserver Identifier
64hi def link resolvDomain Identifier
65hi def link resolvSearch Identifier
66hi def link resolvSortList Identifier
67hi def link resolvOptions Identifier
68
69hi def link resolvComment Comment
70hi def link resolvOperator Operator
71hi def link resolvError Error
72hi def link resolvIPError Error
73hi def link resolvIPSpecial Special
74
75
76let b:current_syntax = "resolv"
77
78" vim: ts=8 ft=vim
79