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