blob: 9a2dec51ce02c8801dd67474258099ea8bc5b4c9 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002" Language: resolver configuration file
Bram Moolenaare6ae6222013-05-21 21:01:10 +02003" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
4" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
Bram Moolenaarb17893a2020-03-14 08:19:51 +01005" Last Change: 2020 Mar 10
6" Version: 1.4
Bram Moolenaare6ae6222013-05-21 21:01:10 +02007"
8" Credits:
9" David Necas (Yeti) <yeti@physics.muni.cz>
10" Stefano Zacchiroli <zack@debian.org>
Bram Moolenaarbc93ceb2020-02-26 13:36:21 +010011" DJ Lucas <dj@linuxfromscratch.org>
Bram Moolenaarb17893a2020-03-14 08:19:51 +010012"
13" Changelog:
14" - 1.4: Added IPv6 support for sortlist.
15" - 1.3: Added IPv6 support for IPv4 dot-decimal notation.
16" - 1.2: Added new options.
17" - 1.1: Added IPv6 support.
Bram Moolenaar071d4272004-06-13 20:20:40 +000018
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020019" quit when a syntax file was already loaded
20if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000021 finish
22endif
23
24" Errors, comments and operators
25syn match resolvError /./
Bram Moolenaare6ae6222013-05-21 21:01:10 +020026syn match resolvComment /\s*[#;].*$/
27syn match resolvOperator /[\/:]/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
29" IP
Bram Moolenaar071d4272004-06-13 20:20:40 +000030syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
Bram Moolenaare6ae6222013-05-21 21:01:10 +020031syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000032syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
33
34" General
35syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
36syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
Bram Moolenaare6ae6222013-05-21 21:01:10 +020037syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
Bram Moolenaar071d4272004-06-13 20:20:40 +000038
Bram Moolenaarb17893a2020-03-14 08:19:51 +010039" Nameserver IPv4
Bram Moolenaarb21e5842006-04-16 18:30:08 +000040syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
Bram Moolenaarb17893a2020-03-14 08:19:51 +010041
42" Nameserver IPv6
43syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\>/
44syn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\>/
45syn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
46syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\>/
47syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
48syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\>/
49syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
50syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\>/
51syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
52syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\>/
53syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
54syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/
55syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\>/
56syn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=/
57
58" Search hostname
Bram Moolenaarb21e5842006-04-16 18:30:08 +000059syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
Bram Moolenaarb17893a2020-03-14 08:19:51 +010060
61" Sortlist IPv4
Bram Moolenaarb21e5842006-04-16 18:30:08 +000062syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
Bram Moolenaarb17893a2020-03-14 08:19:51 +010064" Sortlist IPv6
65syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\%(\/\d\{1,3}\)\?\>/
66syn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\%(\/\d\{1,3}\)\?\>/
67syn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
68syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\%(\/\d\{1,3}\)\?\>/
69syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
70syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\%(\/\d\{1,3}\)\?\>/
71syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
72syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\%(\/\d\{1,3}\)\?\>/
73syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
74syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\%(\/\d\{1,3}\)\?\>/
75syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
76syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/
77syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\%(\/\d\{1,3}\)\?\>/
78syn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=\%(\/\d\{1,3}\)\?/
79
Bram Moolenaar071d4272004-06-13 20:20:40 +000080" Identifiers
Bram Moolenaarb21e5842006-04-16 18:30:08 +000081syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
82syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +020083syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000084syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
85syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
86syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000087
88" Options
Bram Moolenaarb17893a2020-03-14 08:19:51 +010089syn match resolvOption /\<\%(debug\|no_tld_query\|no-tld-query\|rotate\|no-check-names\|inet6\|ip6-bytestring\|\%(no-\)\?ip6-dotint\|edns0\|single-request\%(-reopen\)\?\|use-vc\)\>/ contained nextgroup=resolvOption skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000090syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000091
92" Additional errors
93syn match resolvError /^search .\{257,}/
Bram Moolenaar071d4272004-06-13 20:20:40 +000094
Bram Moolenaarf37506f2016-08-31 22:22:10 +020095hi def link resolvIP Number
96hi def link resolvIPNetmask Number
97hi def link resolvHostname String
98hi def link resolvOption String
Bram Moolenaar071d4272004-06-13 20:20:40 +000099
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200100hi def link resolvIPNameserver Number
101hi def link resolvHostnameSearch String
102hi def link resolvIPNetmaskSortList Number
Bram Moolenaar071d4272004-06-13 20:20:40 +0000103
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200104hi def link resolvNameServer Identifier
105hi def link resolvLwserver Identifier
106hi def link resolvDomain Identifier
107hi def link resolvSearch Identifier
108hi def link resolvSortList Identifier
109hi def link resolvOptions Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200111hi def link resolvComment Comment
112hi def link resolvOperator Operator
113hi def link resolvError Error
114hi def link resolvIPError Error
115hi def link resolvIPSpecial Special
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
Bram Moolenaar071d4272004-06-13 20:20:40 +0000117let b:current_syntax = "resolv"
118
119" vim: ts=8 ft=vim