1071d4279SBram Moolenaar" Vim syntax file 2071d4279SBram Moolenaar" Language: resolver configuration file 3e6ae6225SBram Moolenaar" Maintainer: Radu Dineiu <[email protected]> 4e6ae6225SBram Moolenaar" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim 5*b17893aaSBram Moolenaar" Last Change: 2020 Mar 10 6*b17893aaSBram Moolenaar" Version: 1.4 7e6ae6225SBram Moolenaar" 8e6ae6225SBram Moolenaar" Credits: 9e6ae6225SBram Moolenaar" David Necas (Yeti) <[email protected]> 10e6ae6225SBram Moolenaar" Stefano Zacchiroli <[email protected]> 11bc93cebbSBram Moolenaar" DJ Lucas <[email protected]> 12*b17893aaSBram Moolenaar" 13*b17893aaSBram Moolenaar" Changelog: 14*b17893aaSBram Moolenaar" - 1.4: Added IPv6 support for sortlist. 15*b17893aaSBram Moolenaar" - 1.3: Added IPv6 support for IPv4 dot-decimal notation. 16*b17893aaSBram Moolenaar" - 1.2: Added new options. 17*b17893aaSBram Moolenaar" - 1.1: Added IPv6 support. 18071d4279SBram Moolenaar 1989bcfda6SBram Moolenaar" quit when a syntax file was already loaded 2089bcfda6SBram Moolenaarif exists("b:current_syntax") 21071d4279SBram Moolenaar finish 22071d4279SBram Moolenaarendif 23071d4279SBram Moolenaar 24071d4279SBram Moolenaar" Errors, comments and operators 25071d4279SBram Moolenaarsyn match resolvError /./ 26e6ae6225SBram Moolenaarsyn match resolvComment /\s*[#;].*$/ 27e6ae6225SBram Moolenaarsyn match resolvOperator /[\/:]/ contained 28071d4279SBram Moolenaar 29071d4279SBram Moolenaar" IP 30071d4279SBram Moolenaarsyn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial 31e6ae6225SBram Moolenaarsyn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained 32071d4279SBram Moolenaarsyn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained 33071d4279SBram Moolenaar 34071d4279SBram Moolenaar" General 35071d4279SBram Moolenaarsyn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster 36071d4279SBram Moolenaarsyn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster 37e6ae6225SBram Moolenaarsyn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/ 38071d4279SBram Moolenaar 39*b17893aaSBram Moolenaar" Nameserver IPv4 40b21e5843SBram Moolenaarsyn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster 41*b17893aaSBram Moolenaar 42*b17893aaSBram Moolenaar" Nameserver IPv6 43*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\>/ 44*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\>/ 45*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 46*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\>/ 47*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 48*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\>/ 49*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 50*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\>/ 51*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 52*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\>/ 53*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 54*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\>/ 55*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\>/ 56*b17893aaSBram Moolenaarsyn match resolvIPNameserver contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=/ 57*b17893aaSBram Moolenaar 58*b17893aaSBram Moolenaar" Search hostname 59b21e5843SBram Moolenaarsyn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/ 60*b17893aaSBram Moolenaar 61*b17893aaSBram Moolenaar" Sortlist IPv4 62b21e5843SBram Moolenaarsyn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster 63071d4279SBram Moolenaar 64*b17893aaSBram Moolenaar" Sortlist IPv6 65*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}\%(\x\{1,4}:\x\{1,4}\)\%(\/\d\{1,3}\)\?\>/ 66*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,6}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 67*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\s\@<=::\%(\x\{1,4}:\)\{,5}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 68*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,5}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 69*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1}:\%(\x\{1,4}:\)\{,4}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 70*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,4}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 71*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{2}:\%(\x\{1,4}:\)\{,3}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 72*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,3}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 73*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{3}:\%(\x\{1,4}:\)\{,2}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 74*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,2}\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 75*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{4}:\%(\x\{1,4}:\)\{,1}\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 76*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{5}:\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\d\{1,3}\)\?\>/ 77*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{6}:\x\{1,4}\%(\/\d\{1,3}\)\?\>/ 78*b17893aaSBram Moolenaarsyn match resolvIPNetmaskSortList contained /\<\%(\x\{1,4}:\)\{1,7}:\%(\s\|;\|$\)\@=\%(\/\d\{1,3}\)\?/ 79*b17893aaSBram Moolenaar 80071d4279SBram Moolenaar" Identifiers 81b21e5843SBram Moolenaarsyn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite 82b21e5843SBram Moolenaarsyn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite 831aeaf8c0SBram Moolenaarsyn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite 84b21e5843SBram Moolenaarsyn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite 85b21e5843SBram Moolenaarsyn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite 86b21e5843SBram Moolenaarsyn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite 87071d4279SBram Moolenaar 88071d4279SBram Moolenaar" Options 89*b17893aaSBram Moolenaarsyn 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 90b21e5843SBram Moolenaarsyn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite 91071d4279SBram Moolenaar 92071d4279SBram Moolenaar" Additional errors 93071d4279SBram Moolenaarsyn match resolvError /^search .\{257,}/ 94071d4279SBram Moolenaar 95f37506f6SBram Moolenaarhi def link resolvIP Number 96f37506f6SBram Moolenaarhi def link resolvIPNetmask Number 97f37506f6SBram Moolenaarhi def link resolvHostname String 98f37506f6SBram Moolenaarhi def link resolvOption String 99071d4279SBram Moolenaar 100f37506f6SBram Moolenaarhi def link resolvIPNameserver Number 101f37506f6SBram Moolenaarhi def link resolvHostnameSearch String 102f37506f6SBram Moolenaarhi def link resolvIPNetmaskSortList Number 103071d4279SBram Moolenaar 104f37506f6SBram Moolenaarhi def link resolvNameServer Identifier 105f37506f6SBram Moolenaarhi def link resolvLwserver Identifier 106f37506f6SBram Moolenaarhi def link resolvDomain Identifier 107f37506f6SBram Moolenaarhi def link resolvSearch Identifier 108f37506f6SBram Moolenaarhi def link resolvSortList Identifier 109f37506f6SBram Moolenaarhi def link resolvOptions Identifier 110071d4279SBram Moolenaar 111f37506f6SBram Moolenaarhi def link resolvComment Comment 112f37506f6SBram Moolenaarhi def link resolvOperator Operator 113f37506f6SBram Moolenaarhi def link resolvError Error 114f37506f6SBram Moolenaarhi def link resolvIPError Error 115f37506f6SBram Moolenaarhi def link resolvIPSpecial Special 116071d4279SBram Moolenaar 117071d4279SBram Moolenaarlet b:current_syntax = "resolv" 118071d4279SBram Moolenaar 119071d4279SBram Moolenaar" vim: ts=8 ft=vim 120