]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.2148: Vim does not detect pacman.log file v9.0.2148
authorRonan Pigott <ronan@rjp.ie>
Mon, 4 Dec 2023 19:46:15 +0000 (20:46 +0100)
committerChristian Brabandt <cb@256bit.org>
Mon, 4 Dec 2023 19:46:15 +0000 (20:46 +0100)
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>
.github/CODEOWNERS
runtime/filetype.vim
runtime/syntax/pacmanlog.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index 977bb5d4c668057c9fa81dd92f4a9c4c6e37d2ef..6bdc00ecb9244df0d259e84a6d049bef8f07f7cd 100644 (file)
@@ -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
index 965ebacdec382f58c4104ece32a1e6604356adc8..e7343bd6ff44e07132ee8f89a157e08db70f0e59 100644 (file)
@@ -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 (file)
index 0000000..98abd58
--- /dev/null
@@ -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"
index 08662e6c11580bca67b4489c7a0b67ab83a7e76d..f51cd719fb98cf00fdafa6a30e353f400eb14dae 100644 (file)
@@ -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'],
index 87bda1feb0164fd127840b928a876a1ae9565f11..2c092279011877d7cbbcdd300cb73e2e757e1e0b 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2148,
 /**/
     2147,
 /**/