2 " Language: resolver configuration file
3 " Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
4 " URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
5 " Last Change: 2013 May 21
9 " David Necas (Yeti) <yeti@physics.muni.cz>
10 " Stefano Zacchiroli <zack@debian.org>
14 elseif exists("b:current_syntax")
18 " Errors, comments and operators
19 syn match resolvError /./
20 syn match resolvComment /\s*[#;].*$/
21 syn match resolvOperator /[\/:]/ contained
24 syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
25 syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
26 syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
29 syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
30 syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
31 syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
34 syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
35 syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
36 syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster
39 syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
40 syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
41 syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
42 syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
43 syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
44 syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
47 syn match resolvOption /\<\%(debug\|no_tld_query\|rotate\|no-check-names\|inet6\)\>/ contained nextgroup=resolvOption skipwhite
48 syn match resolvOption /\<\%(ndots\|timeout\|attempts\):\d\+\>/ contained contains=resolvOperator nextgroup=resolvOption skipwhite
51 syn match resolvError /^search .\{257,}/
53 if version >= 508 || !exists("did_config_syntax_inits")
55 let did_config_syntax_inits = 1
56 command! -nargs=+ HiLink hi link <args>
58 command! -nargs=+ HiLink hi def link <args>
61 HiLink resolvIP Number
62 HiLink resolvIPNetmask Number
63 HiLink resolvHostname String
64 HiLink resolvOption String
66 HiLink resolvIPNameserver Number
67 HiLink resolvHostnameSearch String
68 HiLink resolvIPNetmaskSortList Number
70 HiLink resolvNameServer Identifier
71 HiLink resolvLwserver Identifier
72 HiLink resolvDomain Identifier
73 HiLink resolvSearch Identifier
74 HiLink resolvSortList Identifier
75 HiLink resolvOptions Identifier
77 HiLink resolvComment Comment
78 HiLink resolvOperator Operator
79 HiLink resolvError Error
80 HiLink resolvIPError Error
81 HiLink resolvIPSpecial Special
86 let b:current_syntax = "resolv"