summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonan Pigott <ronan@rjp.ie>2023-12-04 20:46:15 +0100
committerChristian Brabandt <cb@256bit.org>2023-12-04 20:46:15 +0100
commit1e5d66408ef85c750a5af03bbf5cc19b5de7a6bc (patch)
tree3b5cab656e15b35794025dcf84abccd94772dcce
parentca2eca7c79bbb1afe4c4bb0a4ed8b18c72d581bf (diff)
patch 9.0.2148: Vim does not detect pacman.log filev9.0.2148
Problem: Vim does not detect pacman.log file Solution: Detect pacmanlogs and add syntax highlighting pacman.log is a filetype common to Arch Liux and related distributions. Add some simple syntax highlighting for the pacmanlog filetype. closes: #13618 Signed-off-by: Ronan Pigott <ronan@rjp.ie> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--.github/CODEOWNERS1
-rw-r--r--runtime/filetype.vim3
-rw-r--r--runtime/syntax/pacmanlog.vim41
-rw-r--r--src/testdir/test_filetype.vim1
-rw-r--r--src/version.c2
5 files changed, 48 insertions, 0 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 977bb5d4c6..6bdc00ecb9 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -450,6 +450,7 @@ runtime/syntax/nix.vim @equill
runtime/syntax/nroff.vim @jmarshall
runtime/syntax/nsis.vim @k-takata
runtime/syntax/openvpn.vim @ObserverOfTime
+runtime/syntax/pacmanlog.vim @rpigott
runtime/syntax/pascal.vim @dkearns
runtime/syntax/pbtxt.vim @lakshayg
runtime/syntax/pdf.vim @tpope
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 965ebacdec..e7343bd6ff 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1521,6 +1521,9 @@ au BufNewFile,BufRead *.hook
\ setf confini |
\ endif
+" Pacman log
+au BufNewFile,BufRead pacman.log setf pacmanlog
+
" Pam conf
au BufNewFile,BufRead */etc/pam.conf setf pamconf
diff --git a/runtime/syntax/pacmanlog.vim b/runtime/syntax/pacmanlog.vim
new file mode 100644
index 0000000000..98abd58685
--- /dev/null
+++ b/runtime/syntax/pacmanlog.vim
@@ -0,0 +1,41 @@
+" Vim syntax file
+" Language: pacman.log
+" Maintainer: Ronan Pigott <ronan@rjp.ie>
+" Last Change: 2023 Dec 04
+
+if exists("b:current_syntax")
+ finish
+endif
+
+syn sync maxlines=1
+syn region pacmanlogMsg start='\S' end='$' keepend contains=pacmanlogTransaction,pacmanlogALPMMsg
+syn region pacmanlogTag start='\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogMsg
+syn region pacmanlogTime start='^\['hs=s+1 end='\]'he=e-1 keepend nextgroup=pacmanlogTag
+
+syn match pacmanlogPackageName '\v[a-z0-9@_+.-]+' contained skipwhite nextgroup=pacmanlogPackageVersion
+syn match pacmanlogPackageVersion '(.*)' contained
+
+syn match pacmanlogTransaction 'transaction \v(started|completed)$' contained
+syn match pacmanlogInstalled '\v(re)?installed' contained nextgroup=pacmanlogPackageName
+syn match pacmanlogUpgraded 'upgraded' contained nextgroup=pacmanlogPackageName
+syn match pacmanlogDowngraded 'downgraded' contained nextgroup=pacmanlogPackageName
+syn match pacmanlogRemoved 'removed' contained nextgroup=pacmanlogPackageName
+syn match pacmanlogWarning 'warning:.*$' contained
+
+syn region pacmanlogALPMMsg start='\v(\[ALPM\] )@<=(transaction|(re)?installed|upgraded|downgraded|removed|warning)>' end='$' contained
+ \ contains=pacmanlogTransaction,pacmanlogInstalled,pacmanlogUpgraded,pacmanlogDowngraded,pacmanlogRemoved,pacmanlogWarning,pacmanlogPackageName,pacmanlogPackgeVersion
+
+hi def link pacmanlogTime String
+hi def link pacmanlogTag Type
+
+hi def link pacmanlogTransaction Special
+hi def link pacmanlogInstalled Identifier
+hi def link pacmanlogRemoved Repeat
+hi def link pacmanlogUpgraded pacmanlogInstalled
+hi def link pacmanlogDowngraded pacmanlogRemoved
+hi def link pacmanlogWarning WarningMsg
+
+hi def link pacmanlogPackageName Normal
+hi def link pacmanlogPackageVersion Comment
+
+let b:current_syntax = "pacmanlog"
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index 08662e6c11..f51cd719fb 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -511,6 +511,7 @@ def s:GetFilenameChecks(): dict<list<string>>
opl: ['file.OPL', 'file.OPl', 'file.OpL', 'file.Opl', 'file.oPL', 'file.oPl', 'file.opL', 'file.opl'],
ora: ['file.ora'],
org: ['file.org', 'file.org_archive'],
+ pacmanlog: ['pacman.log'],
pamconf: ['/etc/pam.conf', '/etc/pam.d/file', 'any/etc/pam.conf', 'any/etc/pam.d/file'],
pamenv: ['/etc/security/pam_env.conf', '/home/user/.pam_environment', '.pam_environment', 'pam_env.conf'],
papp: ['file.papp', 'file.pxml', 'file.pxsl'],
diff --git a/src/version.c b/src/version.c
index 87bda1feb0..2c09227901 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2148,
+/**/
2147,
/**/
2146,