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