]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0655: filetype: goaccess config file not recognized v9.1.0655
authorAdam Monsen <haircut@gmail.com>
Fri, 2 Aug 2024 17:54:15 +0000 (19:54 +0200)
committerChristian Brabandt <cb@256bit.org>
Fri, 2 Aug 2024 17:58:00 +0000 (19:58 +0200)
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>
.github/MAINTAINERS
runtime/filetype.vim
runtime/ftplugin/goaccess.vim [new file with mode: 0644]
runtime/syntax/goaccess.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index ee268f8802cbadd512e72f9008340d474f546b11..04dd18fde2f978fb8a9265b2e30e5c6dbae2af6b 100644 (file)
@@ -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/graphql.vim   @ribru17
-runtime/ftplugin/gyp.vim               @ObserverOfTime
 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/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
index 676738078c653f61f6bafa0ecc0f8a8aba237091..220b37173eb2187dc088e4ab586db33a8f2f4d5e 100644 (file)
@@ -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
 
diff --git a/runtime/ftplugin/goaccess.vim b/runtime/ftplugin/goaccess.vim
new file mode 100644 (file)
index 0000000..fb55730
--- /dev/null
@@ -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<'
diff --git a/runtime/syntax/goaccess.vim b/runtime/syntax/goaccess.vim
new file mode 100644 (file)
index 0000000..4ca8f6d
--- /dev/null
@@ -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"
index 9c2a5e8e596b3d67513926f26dea9baaa9a1b239..1e6c39ed991c750cdf8379fd2e045f62a98816d2 100644 (file)
@@ -300,6 +300,7 @@ def s:GetFilenameChecks(): dict<list<string>>
     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'],
index 1ff7fdc6285af3da8c76774ac3934ae0b058e3f5..a9fae005dcfc279863736ea28347373bae3f7a9b 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    655,
 /**/
     654,
 /**/