view runtime/syntax/openvpn.vim @ 34016:34f6f3678cae

runtime(r): Update R runtime files and docs (#13757) Commit: https://github.com/vim/vim/commit/9042bd8b09bae0051fdf8eb5a57fa4b4420c92a0 Author: Jakson Alves de Aquino <jalvesaq@gmail.com> Date: Mon Dec 25 09:22:27 2023 +0000 runtime(r): Update R runtime files and docs (https://github.com/vim/vim/issues/13757) * Update R runtime files - Fix indentation issue with ggplot(). - Setlocal autoindent in indent/r.vim. - New syntax option: rmd_include_latex. - Clear syn iskeyword to recognize _ as keyword. - Document some options. - remove the test has("patch-7.4.1142") - Update changed date of doc files Signed-off-by: Jakson Alves de Aquino <jalvesaq@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org
author Christian Brabandt <cb@256bit.org>
date Mon, 25 Dec 2023 10:30:07 +0100
parents eb2638f278bf
children
line wrap: on
line source

" Vim syntax file
" Language:	OpenVPN
" Maintainer:	ObserverOfTime <chronobserver@disroot.org>
" Filenames:	*.ovpn
" Last Change:	2022 Oct 16

if exists('b:current_syntax')
    finish
endif

let s:cpo_save = &cpoptions
set cpoptions&vim

" Options
syntax match openvpnOption /^[a-z-]\+/
            \ skipwhite nextgroup=openvpnArgList
syntax match openvpnArgList /.*$/ transparent contained
            \ contains=openvpnArgument,openvpnNumber,
            \ openvpnIPv4Address,openvpnIPv6Address,
            \ openvpnSignal,openvpnComment

" Arguments
syntax match openvpnArgument /[^\\"' \t]\+/
            \ contained contains=openvpnEscape
syntax region openvpnArgument matchgroup=openvpnQuote
            \ start=/"/ skip=/\\"/ end=/"/
            \ oneline contained contains=openvpnEscape
syntax region openvpnArgument matchgroup=openvpnQuote
            \ start=/'/ skip=/\\'/ end=/'/
            \ oneline contained
syntax match openvpnEscape /\\[\\" \t]/ contained

" Numbers
syntax match openvpnNumber /\<[1-9][0-9]*\(\.[0-9]\+\)\?\>/ contained

" Signals
syntax match openvpnSignal /SIG\(HUP\|INT\|TERM\|USER[12]\)/ contained

" IP addresses
syntax match openvpnIPv4Address /\(\d\{1,3}\.\)\{3}\d\{1,3}/
            \ contained nextgroup=openvpnSlash
syntax match openvpnIPv6Address /\([A-F0-9]\{1,4}:\)\{7}\[A-F0-9]\{1,4}/
            \ contained nextgroup=openvpnSlash
syntax match openvpnSlash "/" contained
            \ nextgroup=openvpnIPv4Address,openvpnIPv6Address,openvpnNumber

" Inline files
syntax region openvpnInline matchgroup=openvpnTag
            \ start=+^<\z([a-z-]\+\)>+ end=+^</\z1>+

" Comments
syntax keyword openvpnTodo contained TODO FIXME NOTE XXX
syntax match openvpnComment /^[;#].*$/ contains=openvpnTodo
syntax match openvpnComment /\s\+\zs[;#].*$/ contains=openvpnTodo

hi def link openvpnArgument String
hi def link openvpnComment Comment
hi def link openvpnEscape SpecialChar
hi def link openvpnIPv4Address Constant
hi def link openvpnIPv6Address Constant
hi def link openvpnNumber Number
hi def link openvpnOption Keyword
hi def link openvpnQuote Quote
hi def link openvpnSignal Special
hi def link openvpnSlash Delimiter
hi def link openvpnTag Tag
hi def link openvpnTodo Todo

let b:current_syntax = 'openvpn'

let &cpoptions = s:cpo_save
unlet s:cpo_save