xref: /vim-8.2.3635/runtime/syntax/resolv.vim (revision cf2d8dee)
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: 2013 May 21
6" Version: 1.0
7"
8" Credits:
9"   David Necas (Yeti) <[email protected]>
10"   Stefano Zacchiroli <[email protected]>
11
12if version < 600
13	syntax clear
14elseif exists("b:current_syntax")
15	finish
16endif
17
18" Errors, comments and operators
19syn match resolvError /./
20syn match resolvComment /\s*[#;].*$/
21syn match resolvOperator /[\/:]/ contained
22
23" IP
24syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
25syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
26syn match resolvIPSpecial /\%(127\.\d\{1,3}\.\d\{1,3}\.\d\{1,3}\)/ contained
27
28" General
29syn match resolvIP contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}/ contains=@resolvIPCluster
30syn match resolvIPNetmask contained /\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?/ contains=resolvOperator,@resolvIPCluster
31syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
32
33" Particular
34syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
35syn match resolvHostnameSearch contained /\%(\%([-0-9A-Za-z_]\+\.\)*[-0-9A-Za-z_]\+\.\?\%(\s\|$\)\)\+/
36syn match resolvIPNetmaskSortList contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\/\%(\%(\d\{1,4}\.\)\{,3}\d\{1,4}\)\)\?\%(\s\|$\)\)\+/ contains=resolvOperator,@resolvIPCluster
37
38" Identifiers
39syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
40syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
41syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
42syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
43syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
44syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
45
46" 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