Mercurial > vim
view runtime/syntax/hostconf.vim @ 19749:cc2f523c1828
Added tag v8.2.0430 for changeset d089bd9511c0aa1ac40ed4aa793a8a3c68ffaca5
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 22 Mar 2020 21:30:05 +0100 |
parents | 1218c5353e2b |
children |
line wrap: on
line source
" Vim syntax file " Language: host.conf(5) configuration file " Previous Maintainer: Nikolai Weibull <now@bitwi.se> " Latest Revision: 2007-06-25 if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn keyword hostconfTodo \ contained \ TODO \ FIXME \ XXX \ NOTE syn match hostconfComment \ display \ contained \ '\s*#.*' \ contains=hostconfTodo, \ @Spell syn match hostconfBegin \ display \ '^' \ nextgroup=hostconfComment,hostconfKeyword \ skipwhite syn keyword hostconfKeyword \ contained \ order \ nextgroup=hostconfLookupOrder \ skipwhite let s:orders = ['bind', 'hosts', 'nis'] function s:permute_suffixes(list) if empty(a:list) return [] elseif len(a:list) == 1 return a:list[0] else let i = 0 let n = len(a:list) let sub_permutations = [] while i < n let list_copy = copy(a:list) let removed = list_copy[i] call remove(list_copy, i) call add(sub_permutations, [removed, s:permute_suffixes(list_copy)]) let i += 1 endwhile return sub_permutations endif endfunction function s:generate_suffix_groups(list_of_order_of_orders, context, trailing_context) for order_of_orders in a:list_of_order_of_orders let order = order_of_orders[0] let trailing_context = a:trailing_context . toupper(order[0]) . order[1:] let nextgroup = 'hostconfLookupOrder' . trailing_context let nextgroup_delimiter = nextgroup . 'Delimiter' let group = 'hostconfLookupOrder' . a:context execute 'syn keyword' group 'contained' order 'nextgroup=' . nextgroup_delimiter 'skipwhite' execute 'syn match' nextgroup_delimiter 'contained display "," nextgroup=' . nextgroup 'skipwhite' if a:context != "" execute 'hi def link' group 'hostconfLookupOrder' endif execute 'hi def link' nextgroup_delimiter 'hostconfLookupOrderDelimiter' let context = trailing_context if type(order_of_orders[1]) == type([]) call s:generate_suffix_groups(order_of_orders[1], context, trailing_context) else execute 'syn keyword hostconfLookupOrder' . context 'contained' order_of_orders[-1] execute 'hi def link hostconfLookupOrder' . context 'hostconfLookupOrder' endif endfor endfunction call s:generate_suffix_groups(s:permute_suffixes(s:orders), "", "") delfunction s:generate_suffix_groups delfunction s:permute_suffixes syn keyword hostconfKeyword \ contained \ trim \ nextgroup=hostconfDomain \ skipwhite syn match hostconfDomain \ contained \ '\.[^:;,[:space:]]\+' \ nextgroup=hostconfDomainDelimiter \ skipwhite syn match hostconfDomainDelimiter \ contained \ display \ '[:;,]' \ nextgroup=hostconfDomain \ skipwhite syn keyword hostconfKeyword \ contained \ multi \ nospoof \ spoofalert \ reorder \ nextgroup=hostconfBoolean \ skipwhite syn keyword hostconfBoolean \ contained \ on \ off syn keyword hostconfKeyword \ contained \ spoof \ nextgroup=hostconfSpoofValue \ skipwhite syn keyword hostconfSpoofValue \ contained \ off \ nowarn \ warn hi def link hostconfTodo Todo hi def link hostconfComment Comment hi def link hostconfKeyword Keyword hi def link hostconfLookupOrder Identifier hi def link hostconfLookupOrderDelimiter Delimiter hi def link hostconfDomain String hi def link hostconfDomainDelimiter Delimiter hi def link hostconfBoolean Boolean hi def link hostconfSpoofValue hostconfBoolean let b:current_syntax = "hostconf" let &cpo = s:cpo_save unlet s:cpo_save