Mercurial > vim
changeset 35889:625dcbcc4f71 v9.1.0655
patch 9.1.0655: filetype: goaccess config file not recognized
Commit: https://github.com/vim/vim/commit/0aa65b48fbe64e18a767b207802483026baecb5d
Author: Adam Monsen <haircut@gmail.com>
Date: Fri Aug 2 19:54:15 2024 +0200
patch 9.1.0655: filetype: goaccess config file not recognized
Problem: filetype: goaccess config file not recognized
Solution: detect 'goaccess.conf' as goaccess filetype, also
include a basic syntax and ftplugin (Adam Monsen)
Add syntax highlighting for GoAccess configuration file.
GoAccess is a real-time web log analyzer and interactive viewer that
runs in a terminal in *nix systems or through your browser.
GoAccess home page: https://goaccess.io
closes: #15414
Signed-off-by: Adam Monsen <haircut@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 02 Aug 2024 20:15:04 +0200 |
parents | db43ec5cb82f |
children | 5fe41b33455d |
files | .github/MAINTAINERS runtime/filetype.vim runtime/ftplugin/goaccess.vim runtime/syntax/goaccess.vim src/testdir/test_filetype.vim src/version.c |
diffstat | 6 files changed, 59 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/.github/MAINTAINERS +++ b/.github/MAINTAINERS @@ -160,11 +160,12 @@ runtime/ftplugin/gitconfig.vim @tpope runtime/ftplugin/gitignore.vim @ObserverOfTime runtime/ftplugin/gitrebase.vim @tpope runtime/ftplugin/gitsendemail.vim @tpope +runtime/ftplugin/go.vim @dbarnett +runtime/ftplugin/goaccess.vim @meonkeys +runtime/ftplugin/gomod.vim @yu-yk +runtime/ftplugin/gprof.vim @dpelle runtime/ftplugin/graphql.vim @ribru17 runtime/ftplugin/gyp.vim @ObserverOfTime -runtime/ftplugin/go.vim @dbarnett -runtime/ftplugin/gomod.vim @yu-yk -runtime/ftplugin/gprof.vim @dpelle runtime/ftplugin/haml.vim @tpope runtime/ftplugin/hare.vim @selenebun runtime/ftplugin/haredoc.vim @selenebun @@ -446,6 +447,7 @@ runtime/syntax/gitolite.vim @sitaramc runtime/syntax/gitrebase.vim @tpope runtime/syntax/glsl.vim @gpanders runtime/syntax/go.vim @bhcleek +runtime/syntax/goaccess.vim @meonkeys runtime/syntax/godoc.vim @dbarnett runtime/syntax/gp.vim @KBelabas runtime/syntax/gprof.vim @dpelle
--- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -953,6 +953,9 @@ au BufNewFile,BufRead *.go setf go au BufNewFile,BufRead Gopkg.lock setf toml au BufRead,BufNewFile go.work setf gowork +" GoAccess configuration +au BufNewFile,BufRead goaccess.conf setf goaccess + " GrADS scripts au BufNewFile,BufRead *.gs setf grads
new file mode 100644 --- /dev/null +++ b/runtime/ftplugin/goaccess.vim @@ -0,0 +1,14 @@ +" Vim filetype plugin +" Language: GoAccess configuration +" Maintainer: Adam Monsen <haircut@gmail.com> +" Last Change: 2024 Aug 1 + +if exists('b:did_ftplugin') + finish +endif + +let b:did_ftplugin = 1 + +setl comments=:# commentstring=#\ %s + +let b:undo_ftplugin = 'setl com< cms<'
new file mode 100644 --- /dev/null +++ b/runtime/syntax/goaccess.vim @@ -0,0 +1,34 @@ +" Vim syntax file +" Language: GoAccess configuration +" Maintainer: Adam Monsen <haircut@gmail.com> +" Last Change: 2024 Aug 1 +" Remark: see https://goaccess.io/man#configuration +" +" The GoAccess configuration file syntax is line-separated settings. Settings +" are space-separated key value pairs. Comments are any line starting with a +" hash mark. +" Example: https://github.com/allinurl/goaccess/blob/master/config/goaccess.conf +" +" This syntax definition supports todo/fixme highlighting in comments, and +" special (Keyword) highlighting if a setting's value is 'true' or 'false'. +" +" TODO: a value is required, so use extreme highlighting (e.g. bright red +" background) if a setting is missing a value. + +if exists("b:current_syntax") + finish +endif + +syn match goaccessSettingName '^[a-z-]\+' nextgroup=goaccessSettingValue +syn match goaccessSettingValue '\s\+.\+$' contains=goaccessKeyword +syn match goaccessComment "^#.*$" contains=goaccessTodo,@Spell +syn keyword goaccessTodo TODO FIXME contained +syn keyword goaccessKeyword true false contained + +hi def link goaccessSettingName Type +hi def link goaccessSettingValue String +hi def link goaccessComment Comment +hi def link goaccessTodo Todo +hi def link goaccessKeyword Keyword + +let b:current_syntax = "goaccess"
--- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -300,6 +300,7 @@ def s:GetFilenameChecks(): dict<list<str gnash: ['gnashrc', '.gnashrc', 'gnashpluginrc', '.gnashpluginrc'], gnuplot: ['file.gpi', '.gnuplot', 'file.gnuplot', '.gnuplot_history'], go: ['file.go'], + goaccess: ['goaccess.conf'], gomod: ['go.mod'], gosum: ['go.sum', 'go.work.sum'], gowork: ['go.work'],