Compare commits

...

4 Commits

Author SHA1 Message Date
Omar Polo ef5057cdec adjust vim syntax file: `fastcgi param' is not deprecated
Only a server-level bare `param' is (and in hindsight it was just
a terrible idea to add it in the first place.)
2024-01-09 09:47:44 +00:00
Omar Polo e6adaaba61 update ChangeLog 2024-01-09 08:44:33 +00:00
Anna “CyberTailor” b7e7b9178d Update Vim syntax file 2024-01-09 08:43:46 +00:00
Anna “CyberTailor” 4b77fc3240 contrib/vim: add ALE linter
ALE is faster and otherwise better alternative to Syntastic.
2024-01-09 08:41:08 +00:00
4 changed files with 205 additions and 40 deletions

1
.gitignore vendored
View File

@ -17,6 +17,7 @@ config.log.old
config.mk config.mk
configure.local configure.local
!contrib/gmid !contrib/gmid
!contrib/vim/ale_linters/gmid
!contrib/vim/syntax_checkers/gmid !contrib/vim/syntax_checkers/gmid
regress/testdata regress/testdata
regress/*.pem regress/*.pem

View File

@ -1,3 +1,8 @@
2024-01-09 Anna “CyberTailor”
* contrib/vim/syntax/gmid.vim: update Vim syntax file
* contrib/vim/ale_listers/gmid/gmid.vim: add ALE linter
2023-10-18 Omar Polo <op@omarpolo.com> 2023-10-18 Omar Polo <op@omarpolo.com>
* ge.c (load_local_cert): generate EC certs by default, use -R to keep generating RSA ones. * ge.c (load_local_cert): generate EC certs by default, use -R to keep generating RSA ones.

View File

@ -0,0 +1,36 @@
" Linter for ALE
" Language: gmid(1) configuration file
" Licence: ISC
call ale#Set('gmid_executable', 'gmid')
function! ale_linters#gmid#gmid#Handle(buffer, lines) abort
let l:output = []
let l:gmid_type_to_ale_type = {
\ 'error': 'E',
\ 'warning': 'W',
\}
let l:pattern = '\v^(.*):(\d*) ([a-z]+): (.*)$'
for l:match in ale#util#GetMatches(a:lines, l:pattern)
call add(l:output, {
\ 'filename': l:match[1],
\ 'lnum': l:match[2],
\ 'type': get(l:gmid_type_to_ale_type, l:match[3], 'E'),
\ 'text': l:match[4],
\})
endfor
return l:output
endfunction
call ale#linter#Define('gmid', {
\ 'name': 'gmid',
\ 'executable': {buffer -> ale#Var(buffer, 'gmid_executable')},
\ 'command': '%e -nc %s',
\ 'output_stream': 'both',
\ 'lint_file': 1,
\ 'callback': 'ale_linters#gmid#gmid#Handle',
\})
" vim: set sw=4 sts=4 et fdm=marker:

View File

@ -13,22 +13,44 @@ setlocal iskeyword+=-
" Value Types: {{{2 " Value Types: {{{2
" ============ " ============
syn keyword gmidBoolean on contained syn keyword gmidBoolean on contained
syn keyword gmidBoolean off contained syn keyword gmidBoolean off contained
syn match gmidNumber "\<\d\+\>" display 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 region gmidQuotedString start=+'+ end=+'+ skip=+\\'+ syn region gmidQuotedString start=+'+ end=+'+ skip=+\\'+
syn match gmidVariable "\$\w\w*" display syn match gmidVariable "\$\w\w*" display
syn match gmidMacro "@\w\w*" display syn match gmidMacro "@\w\w*" display
syn cluster gmidValues contains=gmidNumber,
\ gmidQuotedString,
\ gmidVariable,
\ gmidMacro,
\ gmidDeprecated
" Errors: {{{2 " Errors: {{{2
" ============ " ============
" TODO: write comprehensive syntax rules so it can be checked with: " TODO: write comprehensive syntax rules so it can be checked with:
" syn match gmidError '.' " syn match gmidError '.'
syn keyword gmidDirectiveDeprecated mime syn keyword gmidDeprecated ipv6 nextgroup=gmidBoolean skipwhite
" Comments: {{{2 " Comments: {{{2
" ========= " =========
@ -38,60 +60,161 @@ syn match gmidComment "\s*#.*$" display
" =============== " ===============
syn keyword gmidDirective chroot syn keyword gmidDirective chroot
syn keyword gmidDirective include syn keyword gmidDirective include
syn keyword gmidDirective ipv6 nextgroup=gmidBoolean skipwhite syn keyword gmidDirective prefork nextgroup=gmidNumber skipwhite
syn keyword gmidDirective map
syn keyword gmidDirectiveContinuation to-ext
syn keyword gmidDirective port nextgroup=gmidNumber skipwhite
syn keyword gmidDirective prefork nextgroup=gmidNumber skipwhite
syn keyword gmidDirective protocols syn keyword gmidDirective protocols
syn keyword gmidDirective user 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 " Server Blocks: {{{2
" ============== " ==============
syn region gmidBlock start="{" end="}" fold transparent 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 keyword gmidDirectiveBlock server syn region gmidBlockLocation start="location\s\+.\+\s\+{" end="}"
syn keyword gmidDirectiveBlock location \ fold transparent contained
\ contains=gmidDirectiveHost,
\ gmidDirectiveParamHost,
\ gmidBlockFastcgi,
\ @gmidValues
syn keyword gmidDirectiveBlock location contained containedin=gmidBlockLocation
syn keyword gmidDirective alias syn match gmidDirectiveHost "\<auto\s\+index\>" display
syn match gmidDirective "\<auto\s\+index\>" nextgroup=gmidBoolean skipwhite display \ contained nextgroup=gmidBoolean skipwhite
syn keyword gmidDirective block syn keyword gmidDirectiveHost block contained
syn keyword gmidDirectiveContinuation return nextgroup=gmidNumber skipwhite syn keyword gmidDirectiveParamHost return contained nextgroup=gmidNumber skipwhite
syn keyword gmidDirective cert syn match gmidDirectiveHost "\<default\s\+type\>" display contained
syn keyword gmidDirective cgi syn keyword gmidDirectiveHost index contained
syn match gmidDirective "\<default\s\+type>" display syn keyword gmidDirectiveHost lang contained
syn keyword gmidDirective entrypoint syn keyword gmidDirectiveHost log contained nextgroup=gmidBoolean skipwhite
syn keyword gmidDirective env syn keyword gmidDirectiveHost ocsp contained
syn keyword gmidDirective fastcgi syn keyword gmidDirectiveHost root contained
syn keyword gmidDirectiveContinuation tcp syn match gmidDirectiveHost "\<require\s\+client\s\+ca\>" display contained
syn keyword gmidDirective index syn keyword gmidDirectiveHost strip contained nextgroup=gmidNumber skipwhite
syn keyword gmidDirective key
syn keyword gmidDirective lang " FastCGI options
syn keyword gmidDirective log nextgroup=gmidBoolean skipwhite syn match gmidDirectiveHost "\<fastcgi\s\+off\>" display contained
syn keyword gmidDirective param syn match gmidDirectiveHost "\<fastcgi\s\+socket\>" display contained
syn keyword gmidDirective ocsp syn keyword gmidDirectiveParamHost tcp contained
syn keyword gmidDirective root syn match gmidDirectiveHost "\<fastcgi\s\+strip\>" display
syn match gmidDirective "\<require\s\+client\s\+ca\>" display \ contained nextgroup=gmidNumber skipwhite
syn keyword gmidDirective strip 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 " Proxy Blocks: {{{3
" ============= " =============
syn keyword gmidDirectiveBlock proxy syn region gmidBlockProxy start="proxy\s\+\(.*\s\+\)\?{" end="}"
syn keyword gmidDirectiveContinuation proto \ fold transparent contained
syn keyword gmidDirectiveContinuation for-host \ contains=gmidDirectiveProxy,
\ gmidDirectiveParamProxy,
\ @gmidValues
syn keyword gmidDirectiveBlock proxy contained containedin=gmidBlockProxy
syn keyword gmidDirective relay-to syn keyword gmidDirectiveParamProxy proto contained
syn keyword gmidDirective sni syn keyword gmidDirectiveParamProxy for-host contained
syn keyword gmidDirective use-tls nextgroup=gmidBoolean skipwhite
syn keyword gmidDirective verifyname nextgroup=gmidBoolean skipwhite 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 " 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 gmidComment Comment
hi def link gmidBoolean Boolean hi def link gmidBoolean Boolean
hi def link gmidNumber Number hi def link gmidNumber Number
hi def link gmidStyle Constant
hi def link gmidFacility Constant
hi def link gmidQuotedString String hi def link gmidQuotedString String
hi def link gmidVariable Identifier hi def link gmidVariable Identifier
@ -99,7 +222,7 @@ hi def link gmidMacro Macro
hi def link gmidDirective Keyword hi def link gmidDirective Keyword
hi def link gmidDirectiveBlock Function hi def link gmidDirectiveBlock Function
hi def link gmidDirectiveContinuation Type hi def link gmidDirectiveParam Type
hi def link gmidDirectiveDeprecated Error hi def link gmidDeprecated Error
let b:current_syntax = "gmid" let b:current_syntax = "gmid"