1" Vim syntax file 2" Language: resolver configuration file 3" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz> 4" Original Maintaner: Radu Dineiu <littledragon@altern.org> 5" License: This file can be redistribued and/or modified under the same terms 6" as Vim itself. 7" URL: http://trific.ath.cx/Ftp/vim/syntax/resolv.vim 8" Last Change: 2006-04-16 9 10if version < 600 11 syntax clear 12elseif exists("b:current_syntax") 13 finish 14endif 15 16" Errors, comments and operators 17syn match resolvError /./ 18syn match resolvComment /\s*[#;].*$/ 19syn match resolvOperator /[\/:]/ contained 20 21" IP 22syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial 23syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained 24syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained 25 26" General 27syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster 28syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster 29syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/ 30 31" Particular 32syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster 33syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/ 34syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster 35 36" Identifiers 37syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite 38syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite 39syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite 40syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite 41syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite 42syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite 43 44" Options 45" FIXME: The manual page and the source code do not exactly agree on the set 46" of allowed options 47syn match resolvOption /\<\%(debug\|no_tld_query\|rotate\|no-check-names\|inet6\)\>/ contained nextgroup=resolvOption skipwhite 48syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite 49 50" Additional errors 51syn match resolvError /^search .\{257,}/ 52 53if version >= 508 || !exists("did_config_syntax_inits") 54 if version < 508 55 let did_config_syntax_inits = 1 56 command! -nargs=+ HiLink hi link <args> 57 else 58 command! -nargs=+ HiLink hi def link <args> 59 endif 60 61 HiLink resolvIP Number 62 HiLink resolvIPNetmask Number 63 HiLink resolvHostname String 64 HiLink resolvOption String 65 66 HiLink resolvIPNameserver Number 67 HiLink resolvHostnameSearch String 68 HiLink resolvIPNetmaskSortList Number 69 70 HiLink resolvNameServer Identifier 71 HiLink resolvLwserver Identifier 72 HiLink resolvDomain Identifier 73 HiLink resolvSearch Identifier 74 HiLink resolvSortList Identifier 75 HiLink resolvOptions Identifier 76 77 HiLink resolvComment Comment 78 HiLink resolvOperator Operator 79 HiLink resolvError Error 80 HiLink resolvIPError Error 81 HiLink resolvIPSpecial Special 82 83 delcommand HiLink 84endif 85 86let b:current_syntax = "resolv" 87 88" vim: ts=8 ft=vim 89