Blob


1 " Vim syntax file
2 " Language: gmid(1) configuration files
3 " Licence: ISC
5 if exists("b:current_syntax")
6 finish
7 endif
9 " Syntax Definition: {{{1
10 " ==================
11 syn case match
12 setlocal iskeyword+=-
14 " Value Types: {{{2
15 " ============
16 syn keyword gmidBoolean on contained
17 syn keyword gmidBoolean off contained
19 syn match gmidNumber "\<\d\+\>" display
21 syn region gmidQuotedString start=+"+ end=+"+ skip=+\\"+
22 syn region gmidQuotedString start=+'+ end=+'+ skip=+\\'+
24 syn match gmidVariable "\$\w\w*" display
25 syn match gmidMacro "@\w\w*" display
27 " Errors: {{{2
28 " ============
29 " TODO: write comprehensive syntax rules so it can be checked with:
30 " syn match gmidError '.'
31 syn keyword gmidDirectiveDeprecated mime
33 " Comments: {{{2
34 " =========
35 syn match gmidComment "\s*#.*$" display
37 " Global Options: {{{2
38 " ===============
39 syn keyword gmidDirective chroot
40 syn keyword gmidDirective include
41 syn keyword gmidDirective ipv6 nextgroup=gmidBoolean skipwhite
42 syn keyword gmidDirective map
43 syn keyword gmidDirectiveContinuation to-ext
44 syn keyword gmidDirective port nextgroup=gmidNumber skipwhite
45 syn keyword gmidDirective prefork nextgroup=gmidNumber skipwhite
46 syn keyword gmidDirective protocols
47 syn keyword gmidDirective user
49 " Server Blocks: {{{2
50 " ==============
51 syn region gmidBlock start="{" end="}" fold transparent
53 syn keyword gmidDirectiveBlock server
54 syn keyword gmidDirectiveBlock location
56 syn keyword gmidDirective alias
57 syn match gmidDirective "\<auto\s\+index\>" nextgroup=gmidBoolean skipwhite display
58 syn keyword gmidDirective block
59 syn keyword gmidDirectiveContinuation return nextgroup=gmidNumber skipwhite
60 syn keyword gmidDirective cert
61 syn keyword gmidDirective cgi
62 syn match gmidDirective "\<default\s\+type>" display
63 syn keyword gmidDirective entrypoint
64 syn keyword gmidDirective env
65 syn keyword gmidDirective fastcgi
66 syn keyword gmidDirectiveContinuation tcp
67 syn keyword gmidDirective index
68 syn keyword gmidDirective key
69 syn keyword gmidDirective lang
70 syn keyword gmidDirective log nextgroup=gmidBoolean skipwhite
71 syn keyword gmidDirective param
72 syn keyword gmidDirective ocsp
73 syn keyword gmidDirective root
74 syn match gmidDirective "\<require\s\+client\s\+ca\>" display
75 syn keyword gmidDirective strip nextgroup=gmidNumber skipwhite
77 " Proxy Blocks: {{{3
78 " =============
79 syn keyword gmidDirectiveBlock proxy
80 syn keyword gmidDirectiveContinuation proto
81 syn keyword gmidDirectiveContinuation for-host
83 syn keyword gmidDirective relay-to
84 syn keyword gmidDirective sni
85 syn keyword gmidDirective use-tls nextgroup=gmidBoolean skipwhite
86 syn keyword gmidDirective verifyname nextgroup=gmidBoolean skipwhite
88 " Highlighting Settings: {{{1
89 " ======================
91 hi def link gmidComment Comment
93 hi def link gmidBoolean Boolean
94 hi def link gmidNumber Number
95 hi def link gmidQuotedString String
97 hi def link gmidVariable Identifier
98 hi def link gmidMacro Macro
100 hi def link gmidDirective Keyword
101 hi def link gmidDirectiveBlock Function
102 hi def link gmidDirectiveContinuation Type
103 hi def link gmidDirectiveDeprecated Error
105 let b:current_syntax = "gmid"