mirror of
https://github.com/omar-polo/gmid.git
synced 2024-08-18 08:53:23 +02:00
Only a server-level bare `param' is (and in hindsight it was just a terrible idea to add it in the first place.)
229 lines
8.8 KiB
VimL
229 lines
8.8 KiB
VimL
" Vim syntax file
|
|
" Language: gmid(1) configuration files
|
|
" Licence: ISC
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
" Syntax Definition: {{{1
|
|
" ==================
|
|
syn case match
|
|
setlocal iskeyword+=-
|
|
|
|
" Value Types: {{{2
|
|
" ============
|
|
syn keyword gmidBoolean on contained
|
|
syn keyword gmidBoolean off contained
|
|
|
|
syn match gmidNumber "\<\d\+\>" display
|
|
|
|
syn keyword gmidStyle common contained
|
|
syn keyword gmidStyle combined contained
|
|
syn keyword gmidStyle legacy contained
|
|
|
|
syn keyword gmidFacility daemon contained
|
|
syn keyword gmidFacility ftp contained
|
|
syn keyword gmidFacility local0 contained
|
|
syn keyword gmidFacility local1 contained
|
|
syn keyword gmidFacility local2 contained
|
|
syn keyword gmidFacility local3 contained
|
|
syn keyword gmidFacility local4 contained
|
|
syn keyword gmidFacility local5 contained
|
|
syn keyword gmidFacility local6 contained
|
|
syn keyword gmidFacility local7 contained
|
|
syn keyword gmidFacility user contained
|
|
|
|
syn region gmidQuotedString start=+"+ end=+"+ skip=+\\"+
|
|
syn region gmidQuotedString start=+'+ end=+'+ skip=+\\'+
|
|
|
|
syn match gmidVariable "\$\w\w*" display
|
|
syn match gmidMacro "@\w\w*" display
|
|
|
|
syn cluster gmidValues contains=gmidNumber,
|
|
\ gmidQuotedString,
|
|
\ gmidVariable,
|
|
\ gmidMacro,
|
|
\ gmidDeprecated
|
|
|
|
" Errors: {{{2
|
|
" ============
|
|
" TODO: write comprehensive syntax rules so it can be checked with:
|
|
" syn match gmidError '.'
|
|
syn keyword gmidDeprecated ipv6 nextgroup=gmidBoolean skipwhite
|
|
|
|
" Comments: {{{2
|
|
" =========
|
|
syn match gmidComment "\s*#.*$" display
|
|
|
|
" Global Options: {{{2
|
|
" ===============
|
|
syn keyword gmidDirective chroot
|
|
syn keyword gmidDirective include
|
|
syn keyword gmidDirective prefork nextgroup=gmidNumber skipwhite
|
|
syn keyword gmidDirective protocols
|
|
syn keyword gmidDirective user
|
|
|
|
" Logging options
|
|
syn match gmidDirective "\<log\s\+access\>" display
|
|
syn match gmidDirective "\<log\s\+style\>" display
|
|
\ nextgroup=gmidStyle skipwhite
|
|
syn match gmidDirective "\<log\s\+syslog\>" display
|
|
\ nextgroup=gmidBoolean skipwhite
|
|
syn match gmidDirective "\<log\s\+syslog\s\+facility\>" display
|
|
\ nextgroup=gmidFacility skipwhite
|
|
|
|
" Global Log Blocks: {{{3
|
|
" ==================
|
|
syn region gmidBlockLog start="log\s\+{" end="}"
|
|
\ fold transparent
|
|
\ contains=gmidDirectiveLog,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock log contained containedin=gmidBlockLog
|
|
|
|
syn keyword gmidDirectiveLog access contained
|
|
syn keyword gmidDirectiveLog style contained nextgroup=gmidStyle skipwhite
|
|
syn keyword gmidDirectiveLog syslog contained nextgroup=gmidBoolean skipwhite
|
|
syn match gmidDirectiveLog "\<syslog\s\+facility\>" display
|
|
\ contained nextgroup=gmidFacility skipwhite
|
|
|
|
" Server Blocks: {{{2
|
|
" ==============
|
|
syn region gmidBlockServer start="server\s\+.\+\s\+{" end="}"
|
|
\ fold transparent
|
|
\ contains=gmidDirectiveServer,
|
|
\ gmidDirectiveParamServer,
|
|
\ gmidDirectiveHost,
|
|
\ gmidDirectiveParamHost,
|
|
\ gmidBlockLocation,
|
|
\ gmidBlockFastcgi,
|
|
\ gmidBlockProxy,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock server contained containedin=gmidBlockServer
|
|
|
|
syn region gmidBlockLocation start="location\s\+.\+\s\+{" end="}"
|
|
\ fold transparent contained
|
|
\ contains=gmidDirectiveHost,
|
|
\ gmidDirectiveParamHost,
|
|
\ gmidBlockFastcgi,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock location contained containedin=gmidBlockLocation
|
|
|
|
syn match gmidDirectiveHost "\<auto\s\+index\>" display
|
|
\ contained nextgroup=gmidBoolean skipwhite
|
|
syn keyword gmidDirectiveHost block contained
|
|
syn keyword gmidDirectiveParamHost return contained nextgroup=gmidNumber skipwhite
|
|
syn match gmidDirectiveHost "\<default\s\+type\>" display contained
|
|
syn keyword gmidDirectiveHost index contained
|
|
syn keyword gmidDirectiveHost lang contained
|
|
syn keyword gmidDirectiveHost log contained nextgroup=gmidBoolean skipwhite
|
|
syn keyword gmidDirectiveHost ocsp contained
|
|
syn keyword gmidDirectiveHost root contained
|
|
syn match gmidDirectiveHost "\<require\s\+client\s\+ca\>" display contained
|
|
syn keyword gmidDirectiveHost strip contained nextgroup=gmidNumber skipwhite
|
|
|
|
" FastCGI options
|
|
syn match gmidDirectiveHost "\<fastcgi\s\+off\>" display contained
|
|
syn match gmidDirectiveHost "\<fastcgi\s\+socket\>" display contained
|
|
syn keyword gmidDirectiveParamHost tcp contained
|
|
syn match gmidDirectiveHost "\<fastcgi\s\+strip\>" display
|
|
\ contained nextgroup=gmidNumber skipwhite
|
|
|
|
" Options unavailable for `location`
|
|
syn keyword gmidDirectiveServer alias contained
|
|
syn keyword gmidDirectiveServer cert contained
|
|
syn keyword gmidDirectiveServer key contained
|
|
syn match gmidDirectiveServer "\<listen\s\+on\>" display contained
|
|
|
|
" Ambiguos, can be used both in `listen on` and `fastcgi socket`
|
|
syn keyword gmidDirectiveParamHost port contained nextgroup=gmidNumber skipwhite
|
|
|
|
" FastCGI Blocks: {{{3
|
|
" ===============
|
|
syn region gmidBlockFastcgi start="fastcgi\s\+{" end="}"
|
|
\ fold transparent contained
|
|
\ contains=gmidDirectiveFastcgi,
|
|
\ gmidDirectiveParamFastcgi,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock fastcgi contained containedin=gmidBlockFastcgi
|
|
|
|
syn keyword gmidDirectiveFastcgi param contained
|
|
syn keyword gmidDirectiveFastcgi socket contained
|
|
syn keyword gmidDirectiveParamFastcgi tcp contained
|
|
syn keyword gmidDirectiveParamFastcgi port contained nextgroup=gmidNumber skipwhite
|
|
syn keyword gmidDirectiveFastcgi strip contained nextgroup=gmidNumber skipwhite
|
|
|
|
" Proxy Blocks: {{{3
|
|
" =============
|
|
syn region gmidBlockProxy start="proxy\s\+\(.*\s\+\)\?{" end="}"
|
|
\ fold transparent contained
|
|
\ contains=gmidDirectiveProxy,
|
|
\ gmidDirectiveParamProxy,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock proxy contained containedin=gmidBlockProxy
|
|
|
|
syn keyword gmidDirectiveParamProxy proto contained
|
|
syn keyword gmidDirectiveParamProxy for-host contained
|
|
|
|
syn keyword gmidDirectiveProxy cert contained
|
|
syn keyword gmidDirectiveProxy key contained
|
|
syn keyword gmidDirectiveProxy protocols contained
|
|
syn keyword gmidDirectiveProxy relay-to contained
|
|
syn match gmidDirectiveProxy "\<require\s\+client\s\+ca\>" display contained
|
|
syn keyword gmidDirectiveProxy sni contained
|
|
syn keyword gmidDirectiveProxy use-tls contained nextgroup=gmidBoolean skipwhite
|
|
syn keyword gmidDirectiveProxy verifyname contained nextgroup=gmidBoolean skipwhite
|
|
|
|
" Ambiguos, can be used both in `proxy` and `relay-to`
|
|
syn keyword gmidDirectiveParamProxy port contained nextgroup=gmidNumber skipwhite
|
|
|
|
" Types Blocks: {{{2
|
|
" =============
|
|
syn region gmidBlockTypes start="types\s\+{" end="}"
|
|
\ fold transparent
|
|
\ contains=gmidDirectiveTypes,
|
|
\ @gmidValues
|
|
syn keyword gmidDirectiveBlock types contained containedin=gmidBlockTypes
|
|
|
|
syn keyword gmidDirectiveTypes include contained
|
|
|
|
" Highlighting Settings: {{{1
|
|
" ======================
|
|
|
|
" Create aliases
|
|
|
|
hi def link gmidDirectiveLog gmidDirective
|
|
hi def link gmidDirectiveTypes gmidDirective
|
|
|
|
hi def link gmidDirectiveServer gmidDirective
|
|
hi def link gmidDirectiveParamServer gmidDirectiveParam
|
|
|
|
hi def link gmidDirectiveHost gmidDirective
|
|
hi def link gmidDirectiveParamHost gmidDirectiveParam
|
|
|
|
hi def link gmidDirectiveFastcgi gmidDirective
|
|
hi def link gmidDirectiveParamFastcgi gmidDirectiveParam
|
|
|
|
hi def link gmidDirectiveProxy gmidDirective
|
|
hi def link gmidDirectiveParamProxy gmidDirectiveParam
|
|
|
|
" Map to standard types
|
|
|
|
hi def link gmidComment Comment
|
|
|
|
hi def link gmidBoolean Boolean
|
|
hi def link gmidNumber Number
|
|
hi def link gmidStyle Constant
|
|
hi def link gmidFacility Constant
|
|
hi def link gmidQuotedString String
|
|
|
|
hi def link gmidVariable Identifier
|
|
hi def link gmidMacro Macro
|
|
|
|
hi def link gmidDirective Keyword
|
|
hi def link gmidDirectiveBlock Function
|
|
hi def link gmidDirectiveParam Type
|
|
hi def link gmidDeprecated Error
|
|
|
|
let b:current_syntax = "gmid"
|