blob: 7b30898d6711a7bb7f7e850cd455d2947565976d [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
Bram Moolenaare6ae6222013-05-21 21:01:10 +02003" Maintainer: Radu Dineiu <radu.dineiu@gmail.com>
4" URL: https://raw.github.com/rid9/vim-resolv/master/resolv.vim
Bram Moolenaarbc93ceb2020-02-26 13:36:21 +01005" Last Change: 2020 Feb 15
6" By: DJ Lucas
7" Version: 1.1
Bram Moolenaare6ae6222013-05-21 21:01:10 +02008"
9" Credits:
10" David Necas (Yeti) <yeti@physics.muni.cz>
11" Stefano Zacchiroli <zack@debian.org>
Bram Moolenaarbc93ceb2020-02-26 13:36:21 +010012" DJ Lucas <dj@linuxfromscratch.org>
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020014" quit when a syntax file was already loaded
15if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000016 finish
17endif
18
19" Errors, comments and operators
20syn match resolvError /./
Bram Moolenaare6ae6222013-05-21 21:01:10 +020021syn match resolvComment /\s*[#;].*$/
22syn match resolvOperator /[\/:]/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000023
24" IP
Bram Moolenaar071d4272004-06-13 20:20:40 +000025syn cluster resolvIPCluster contains=resolvIPError,resolvIPSpecial
Bram Moolenaare6ae6222013-05-21 21:01:10 +020026syn match resolvIPError /\%(\d\{4,}\|25[6-9]\|2[6-9]\d\|[3-9]\d\{2}\)[\.0-9]*/ contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000027syn 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
Bram Moolenaare6ae6222013-05-21 21:01:10 +020032syn match resolvHostname contained /\w\{-}\.[-0-9A-Za-z_\.]*/
Bram Moolenaar071d4272004-06-13 20:20:40 +000033
34" Particular
Bram Moolenaarb21e5842006-04-16 18:30:08 +000035syn match resolvIPNameserver contained /\%(\%(\d\{1,4}\.\)\{3}\d\{1,4}\%(\s\|$\)\)\+/ contains=@resolvIPCluster
Bram Moolenaarbc93ceb2020-02-26 13:36:21 +010036syn 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\|;\|$\)\@=/
Bram Moolenaarb21e5842006-04-16 18:30:08 +000045syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000047
48" Identifiers
Bram Moolenaarb21e5842006-04-16 18:30:08 +000049syn match resolvNameserver /^\s*nameserver\>/ nextgroup=resolvIPNameserver skipwhite
50syn match resolvLwserver /^\s*lwserver\>/ nextgroup=resolvIPNameserver skipwhite
Bram Moolenaar1aeaf8c2012-05-18 13:46:39 +020051syn match resolvDomain /^\s*domain\>/ nextgroup=resolvHostname skipwhite
Bram Moolenaarb21e5842006-04-16 18:30:08 +000052syn match resolvSearch /^\s*search\>/ nextgroup=resolvHostnameSearch skipwhite
53syn match resolvSortList /^\s*sortlist\>/ nextgroup=resolvIPNetmaskSortList skipwhite
54syn match resolvOptions /^\s*options\>/ nextgroup=resolvOption skipwhite
Bram Moolenaar071d4272004-06-13 20:20:40 +000055
56" Options
Bram Moolenaarb21e5842006-04-16 18:30:08 +000057syn 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000059
60" Additional errors
61syn match resolvError /^search .\{257,}/
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
Bram Moolenaar071d4272004-06-13 20:20:40 +000063
Bram Moolenaarf37506f2016-08-31 22:22:10 +020064hi def link resolvIP Number
65hi def link resolvIPNetmask Number
66hi def link resolvHostname String
67hi def link resolvOption String
Bram Moolenaar071d4272004-06-13 20:20:40 +000068
Bram Moolenaarf37506f2016-08-31 22:22:10 +020069hi def link resolvIPNameserver Number
70hi def link resolvHostnameSearch String
71hi def link resolvIPNetmaskSortList Number
Bram Moolenaar071d4272004-06-13 20:20:40 +000072
Bram Moolenaarf37506f2016-08-31 22:22:10 +020073hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +000079
Bram Moolenaarf37506f2016-08-31 22:22:10 +020080hi def link resolvComment Comment
81hi def link resolvOperator Operator
82hi def link resolvError Error
83hi def link resolvIPError Error
84hi def link resolvIPSpecial Special
Bram Moolenaar071d4272004-06-13 20:20:40 +000085
Bram Moolenaar071d4272004-06-13 20:20:40 +000086
87let b:current_syntax = "resolv"
88
89" vim: ts=8 ft=vim