Add vcl syntax, closes #82
This commit is contained in:
parent
303b3f1b43
commit
938a2f1667
@ -92,6 +92,7 @@ Optionally download one of the [releases](https://github.com/sheerun/vim-polyglo
|
|||||||
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
- [typescript](https://github.com/leafgarland/typescript-vim) (syntax, indent, compiler, ftplugin, ftdetect)
|
||||||
- [vala](https://github.com/tkztmk/vim-vala) (syntax, indent, ftdetect)
|
- [vala](https://github.com/tkztmk/vim-vala) (syntax, indent, ftdetect)
|
||||||
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
- [vbnet](https://github.com/vim-scripts/vbnet.vim) (syntax)
|
||||||
|
- [vcl](https://github.com/smerrill/vcl-vim-plugin) (syntax, ftdetect)
|
||||||
- [vm](https://github.com/lepture/vim-velocity) (syntax, indent, ftdetect)
|
- [vm](https://github.com/lepture/vim-velocity) (syntax, indent, ftdetect)
|
||||||
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
- [xls](https://github.com/vim-scripts/XSLT-syntax) (syntax)
|
||||||
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
- [yard](https://github.com/sheerun/vim-yardoc) (syntax)
|
||||||
|
1
build
1
build
@ -163,6 +163,7 @@ PACKS="
|
|||||||
typescript:leafgarland/typescript-vim
|
typescript:leafgarland/typescript-vim
|
||||||
vala:tkztmk/vim-vala
|
vala:tkztmk/vim-vala
|
||||||
vbnet:vim-scripts/vbnet.vim
|
vbnet:vim-scripts/vbnet.vim
|
||||||
|
vcl:smerrill/vcl-vim-plugin
|
||||||
vm:lepture/vim-velocity
|
vm:lepture/vim-velocity
|
||||||
xls:vim-scripts/XSLT-syntax
|
xls:vim-scripts/XSLT-syntax
|
||||||
yard:sheerun/vim-yardoc
|
yard:sheerun/vim-yardoc
|
||||||
|
@ -406,6 +406,10 @@ if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vala') == -1
|
|||||||
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
autocmd BufRead *.vala,*.vapi set efm=%f:%l.%c-%[%^:]%#:\ %t%[%^:]%#:\ %m
|
||||||
au BufRead,BufNewFile *.vala,*.vapi setfiletype vala
|
au BufRead,BufNewFile *.vala,*.vapi setfiletype vala
|
||||||
endif
|
endif
|
||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vcl') == -1
|
||||||
|
|
||||||
|
au BufRead,BufNewFile *.vcl set filetype=vcl
|
||||||
|
endif
|
||||||
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vm') == -1
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vm') == -1
|
||||||
|
|
||||||
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
au BufRead,BufNewFile *.vm set ft=velocity syntax=velocity
|
||||||
|
110
syntax/vcl.vim
Normal file
110
syntax/vcl.vim
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vcl') == -1
|
||||||
|
|
||||||
|
" Vim syntax file
|
||||||
|
" Filename: vcl.vim
|
||||||
|
" Language: Varnish configuation Language, http://www.varnish-cache.org/wiki/VCL
|
||||||
|
" Maintainer: Elan Ruusamäe <glen@delfi.ee>
|
||||||
|
" Version Info: $Revision: 1.7 $
|
||||||
|
" Last Change: $Date: 2010/04/06 08:24:28 $ UTC
|
||||||
|
|
||||||
|
" For version 5.x: Clear all syntax items
|
||||||
|
" For version 6.x: Quit when a syntax file was already loaded
|
||||||
|
if version < 600
|
||||||
|
syntax clear
|
||||||
|
elseif exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" TODO
|
||||||
|
" - sub ...
|
||||||
|
" - backend/director/...
|
||||||
|
" - acl ...
|
||||||
|
" - error when invalid operator used in if (...)
|
||||||
|
" - +=, = operators
|
||||||
|
" - functions
|
||||||
|
|
||||||
|
" Code Blocks
|
||||||
|
" sub NAME {
|
||||||
|
" backend NAME {
|
||||||
|
" director NAME FLAGS {
|
||||||
|
" acl NAME {
|
||||||
|
"syn region vclCodeBlock start="\s*\<sub\|backend\|director\|acl\>" end="{"he=e-1 contains=vclCodeBlockName,vclFunctionName
|
||||||
|
"syn match vclCodeBlockName "\<sub\|backend\|director\|acl\>" contained
|
||||||
|
"syn match vclFunctionName "\h[[:alnum:]_:]*" contained
|
||||||
|
"syn match vclFunctionName "\h\w*[^:]" contained
|
||||||
|
"
|
||||||
|
syn keyword vclOperator set call return error esi synthetic include remove unset
|
||||||
|
" return modes
|
||||||
|
syn keyword vclModes deliver pipe pass hash lookup discard fetch restart
|
||||||
|
|
||||||
|
" C strings
|
||||||
|
syn region vclString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=vclSpecial
|
||||||
|
syn match vclSpecial display contained "\\\(x\x\+\|\o\{1,3}\|.\|$\)"
|
||||||
|
syn match vclSpecialError "L\='\\[^'\"?\\abfnrtv]'"
|
||||||
|
syn match vclSpecialCharacter "L\='\\['\"?\\abfnrtv]'"
|
||||||
|
syn match vclSpecialCharacter display "L\='\\\o\{1,3}'"
|
||||||
|
syn match vclSpecialCharacter display "'\\x\x\{1,2}'"
|
||||||
|
syn match vclSpecialCharacter display "L'\\x\x\+'"
|
||||||
|
|
||||||
|
syn keyword vclConditional if else elsif elseif
|
||||||
|
|
||||||
|
" Numbers
|
||||||
|
syn match vclNumbers display transparent "\<\d\|\.\d" contains=vclNumber,vclNumberTime
|
||||||
|
syn match vclNumber display contained "\d\+"
|
||||||
|
" set obj.ttl = 0s, 0m;
|
||||||
|
syn match vclNumberTime display contained "\d\+[dhsm]"
|
||||||
|
|
||||||
|
" client
|
||||||
|
syn match vclOption /client\.\(ip\|identity\)/
|
||||||
|
" server
|
||||||
|
syn match vclOption /server\.\(ip\|port\)/
|
||||||
|
" req
|
||||||
|
syn match vclOption /req\.\(hash\|request\|method\|url\|proto\|backend\healthy\|backend\|grace\|xid\|restarts\)/
|
||||||
|
" bereq
|
||||||
|
syn match vclOption /bereq\.\(request\|method\|url\|proto\|connect_timeout\|first_byte_timeout\|between_bytes_timeout\)/
|
||||||
|
" beresp
|
||||||
|
syn match vclOption /beresp\.\(proto\|status\|response\|cacheable\|ttl\|lastuse\|hits\|hash\|grace\|prefetch\|saintmode\|keep\)/
|
||||||
|
" obj
|
||||||
|
syn match vclOption /obj\.\(proto\|status\|response\|cacheable\|ttl\|lastuse\|hits\|hash\|grace\|prefetch\)/
|
||||||
|
" resp
|
||||||
|
syn match vclOption /resp\.\(proto\|status\|response\)/
|
||||||
|
" common: http.HEADERNAME
|
||||||
|
syn match vclOption /\(req\|bereq\|resp\|beresp\|obj\)\.http\.[A-Za-z][-_A-Za-z0-9]*/
|
||||||
|
|
||||||
|
" Highlight the C block
|
||||||
|
syn include @vclC syntax/c.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
" Mark block tags itself as comment
|
||||||
|
syn region vclCBlock matchgroup=vclComment start=/C{/ end=/}C/ contains=@vclC keepend
|
||||||
|
|
||||||
|
" Synthetic
|
||||||
|
syn region vclSynthetic start=/{"/hs=s+2 end=/"}/he=e-2 contains=@vclHTML keepend
|
||||||
|
|
||||||
|
" Allow html in synthetic
|
||||||
|
syn include @vclHTML syntax/html.vim
|
||||||
|
unlet b:current_syntax
|
||||||
|
|
||||||
|
syn match vclComment '#.*'
|
||||||
|
syn match vclComment "//.*"
|
||||||
|
syn region vclComment start="/\*" end="\*/"
|
||||||
|
|
||||||
|
syn sync ccomment vclComment
|
||||||
|
|
||||||
|
hi link vclCodeBlock Function
|
||||||
|
hi link vclComment Comment
|
||||||
|
hi link vclStatement Statement
|
||||||
|
hi link vclFunctionName Identifier
|
||||||
|
hi link vclCodeBlockName Statement
|
||||||
|
hi link vclSpecial SpecialChar
|
||||||
|
hi link vclString String
|
||||||
|
hi link vclConditional Conditional
|
||||||
|
hi link vclSynthetic vclString
|
||||||
|
hi link vclSpecialCharacter vclSpecialSpecial
|
||||||
|
hi link vclOperator Operator
|
||||||
|
hi link vclModes Operator
|
||||||
|
hi link vclOption Identifier
|
||||||
|
hi link vclNumber Number
|
||||||
|
hi link vclNumberTime Number
|
||||||
|
|
||||||
|
endif
|
Loading…
Reference in New Issue
Block a user