blob: 6ec42d27d98eaebf7ffe214a022487ee3b85d199 [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
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
Bram Moolenaar071d4272004-06-13 20:20:40 +00009
10if version < 600
11 syntax clear
12elseif exists("b:current_syntax")
13 finish
14endif
15
16" Errors, comments and operators
17syn match resolvError /./
Bram Moolenaarb21e5842006-04-16 18:30:08 +000018syn match resolvComment /\s*[#;].*$/
Bram Moolenaar071d4272004-06-13 20:20:40 +000019syn match resolvOperator /[\/:]/ contained
20
21" IP
Bram Moolenaar071d4272004-06-13 20:20:40 +000022syn 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
Bram Moolenaarb21e5842006-04-16 18:30:08 +000032syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000035
36" Identifiers
Bram Moolenaarb21e5842006-04-16 18:30:08 +000037syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000043
44" Options
Bram Moolenaarb21e5842006-04-16 18:30:08 +000045" 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000049
50" Additional errors
51syn match resolvError /^search .\{257,}/
Bram Moolenaar071d4272004-06-13 20:20:40 +000052
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
Bram Moolenaarb21e5842006-04-16 18:30:08 +000071 HiLink resolvLwserver Identifier
Bram Moolenaar071d4272004-06-13 20:20:40 +000072 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