From 4ca9d25cb431a8e51b9d32dd5e8848bdcfb9d525 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sun, 8 Nov 2020 19:52:37 +0800 Subject: [PATCH 1/7] allow User=%I and the like --- syntax/systemd.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index d0c1cc2..3b02394 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -106,7 +106,7 @@ syn keyword sdFailAction contained nextgroup=sdErr exit exit-force syn keyword sdArch contained nextgroup=sdErr x86 x86_64 ppc ppc-le ppc64 ppc64-le ia64 parisc parisc64 s390 s390x sparc sparc64 mips mips-le mips64 mips64-le alpha arm arm-be arm64 arm64-be sh sh64 m68k tilegx cris arc arc-be native syn keyword sdController contained cpu cpuacct io blkio memory devices pids nextgroup=sdController,sdErr syn match sdCondUser contained /@system/ -syn match sdUser contained nextgroup=sdErr /\d\+\|[A-Za-z_][A-Za-z0-9_-]*/ +syn match sdUser contained nextgroup=sdErr /\d\+\|[A-Za-z_%][A-Za-z0-9_%-]*/ syn match sdExitStatus contained nextgroup=sdErr /\d\|\d\d\|[01]\d\d\|2[0-4]\d\|25[0-5]/ syn match sdDocUri contained /\%(https\=:\/\/\|file:\|info:\|man:\)\S\+\s*/ nextgroup=sdDocUri,sdErr From 10b3a22d072b783339cd4767659d99351cbad056 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sun, 8 Nov 2020 19:53:18 +0800 Subject: [PATCH 2/7] some directives update --- syntax/systemd.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index 3b02394..e364fcf 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -138,10 +138,10 @@ syn match sdExecKey contained /^\%(SupplementaryGroups\|CPUAffinity\|SyslogIdent syn match sdExecKey contained /^Limit\%(CPU\|FSIZE\|DATA\|STACK\|CORE\|RSS\|NOFILE\|AS\|NPROC\|MEMLOCK\|LOCKS\|SIGPENDING\|MSGQUEUE\|NICE\|RTPRIO\|RTTIME\)=/ nextgroup=sdRlimit syn match sdExecKey contained /^\%(CPUSchedulingResetOnFork\|TTYReset\|TTYVHangup\|TTYVTDisallocate\|SyslogLevelPrefix\|ControlGroupModify\|DynamicUser\|RemoveIPC\|NoNewPrivileges\|RestrictRealtime\|RestrictSUIDSGID\|LockPersonality\|MountAPIVFS\)=/ nextgroup=sdBool,sdErr syn match sdExecKey contained /^Private\%(Tmp\|Network\|Devices\|Users\|Mounts\)=/ nextgroup=sdBool,sdErr -syn match sdExecKey contained /^Protect\%(KernelTunables\|KernelModules\|KernelLogs\|Clock\|ControlGroups\|Hostname\)=/ nextgroup=sdBool,sdErr +syn match sdExecKey contained /^Protect\%(KernelTunables\|KernelModules\|KernelLogs\|Clock\|ControlGroups\|Hostname\|Home\)=/ nextgroup=sdBool,sdErr syn match sdExecKey contained /^\%(Nice\|OOMScoreAdjust\)=/ nextgroup=sdInt,sdErr syn match sdExecKey contained /^\%(CPUSchedulingPriority\|TimerSlackNSec\)=/ nextgroup=sdUInt,sdErr -syn match sdExecKey contained /^\%(ReadWrite\|ReadOnly\|Inaccessible\)Directories=/ nextgroup=sdFileList +syn match sdExecKey contained /^\%(ReadWrite\|ReadOnly\|Inaccessible\)Paths=/ nextgroup=sdFileList syn match sdExecKey contained /^CapabilityBoundingSet=/ nextgroup=sdCapNameList syn match sdExecKey contained /^Capabilities=/ nextgroup=sdCapability,sdErr syn match sdExecKey contained /^UMask=/ nextgroup=sdOctal,sdErr From 9b6aeeefc9e23ec5e136cc472d4d4946638e11a9 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sun, 8 Nov 2020 19:53:42 +0800 Subject: [PATCH 3/7] Exec* no longer needs absolute paths --- syntax/systemd.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index e364fcf..3510ce3 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -159,7 +159,7 @@ syn match sdExecKey contained /^Environment=/ nextgroup=sdEnvDefs syn match sdExecKey contained /^EnvironmentFile=-\=/ contains=sdEnvDashFlag nextgroup=sdFilename,sdErr syn match sdExecFlag contained /-\=@\=/ nextgroup=sdExecFile,sdErr -syn match sdExecFile contained /\/\S\+/ nextgroup=sdExecArgs +syn match sdExecFile contained /\S\+/ nextgroup=sdExecArgs syn match sdExecArgs contained /.*/ contains=sdEnvArg syn match sdEnvDefs contained /.*/ contains=sdEnvDef syn match sdEnvDashFlag contained /-/ nextgroup=sdFilename,sdErr From ab53b4dc3d9327d8c7c9e1ea2f07a9a65be3ab49 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sun, 8 Nov 2020 19:54:27 +0800 Subject: [PATCH 4/7] better Environment= e.g.: Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%I/bus Environment="abc=a b c" 'def=\'def\'' --- syntax/systemd.vim | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index 3510ce3..c505a27 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -161,9 +161,14 @@ syn match sdExecKey contained /^EnvironmentFile=-\=/ contains=sdEnvDashFlag next syn match sdExecFlag contained /-\=@\=/ nextgroup=sdExecFile,sdErr syn match sdExecFile contained /\S\+/ nextgroup=sdExecArgs syn match sdExecArgs contained /.*/ contains=sdEnvArg -syn match sdEnvDefs contained /.*/ contains=sdEnvDef +syn match sdEnvDefs contained /.*/ contains=sdEnvDef,sdEnvSQuotes,sdEnvDQuotes syn match sdEnvDashFlag contained /-/ nextgroup=sdFilename,sdErr -syn match sdEnvDef contained /\i\+=/he=e-1 +syn match sdEnvDef contained /\i\+=/he=e-1 nextgroup=sdEnvValue +syn match sdEnvDefQuoted contained /['"]\@<=\i\+=/he=e-1 +hi link sdEnvDefQuoted sdEnvDef +syn region sdEnvSQuotes contained start=/'/ skip=+\\'+ end=/'/ contains=sdEnvDefQuoted +syn region sdEnvDQuotes contained start=/"/ skip=+\\"+ end=/"/ contains=sdEnvDefQuoted +syn match sdEnvValue contained /\S*/ syn match sdFileList contained /.*/ contains=sdFilename,sdErr " CAPABILITIES WOOO {{{ syn case ignore From 44bd12046777663422b548dabb0cb1ba2b7a8b4f Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Sun, 8 Nov 2020 19:55:29 +0800 Subject: [PATCH 5/7] directive value update --- syntax/systemd.vim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index c505a27..09abcc6 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -190,6 +190,8 @@ syn match sdCapability contained /\%(\%([A-Za-z_]\+,\=\)*\|all\)\%(=[eip]*\ syn keyword sdStdin contained nextgroup=sdErr null tty-force tty-fail socket tty syn match sdStdout contained nextgroup=sdErr /\%(syslog\|kmsg\|journal\)\%(+console\)\=/ syn keyword sdStdout contained nextgroup=sdErr inherit null tty socket +syn match sdStdout contained /fd:/ +syn match sdStdout contained nextgroup=sdFilename,sdErr /\v%(file|append):/ syn keyword sdSyslogFacil contained nextgroup=sdErr kern user mail daemon auth syslog lpr news uucp cron authpriv ftp syn match sdSyslogFacil contained nextgroup=sdErr /\/ syn keyword sdSyslogLevel contained nextgroup=sdErr emerg alert crit err warning notice info debug @@ -211,7 +213,7 @@ syn match sdKillKey contained /^\%(SendSIGKILL\|SendSIGHUP\)=/ nextgroup=sdBool syn keyword sdSignal contained nextgroup=sdErr SIGHUP SIGINT SIGQUIT SIGKILL SIGTERM SIGUSR1 SIGUSR2 syn match sdOtherSignal contained nextgroup=sdErr /\<\%(\d\+\|SIG[A-Z]\{2,6}\)\>/ -syn match sdKillMode contained nextgroup=sdErr /\%(control-group\|process\|none\)/ +syn match sdKillMode contained nextgroup=sdErr /\%(control-group\|mixed\|process\|none\)/ " Resource Control options for [Service|Socket|Mount|Swap|Slice|Scope] {{{1 " see systemd.resource-control(5) From 3e03d7032eb433c2f5b4b1fbc7c34f1b71ceb999 Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Fri, 13 Nov 2020 18:35:56 +0800 Subject: [PATCH 6/7] support UnsetEnvironment --- syntax/systemd.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index 09abcc6..b9a9772 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -156,6 +156,7 @@ syn match sdExecKey contained /^CPUSchedulingPolicy=/ nextgroup=sdCPUSchedPol,sd syn match sdExecKey contained /^MountFlags=/ nextgroup=sdMountFlags,sdErr syn match sdExecKey contained /^\%(IgnoreSIGPIPE\|MemoryDenyWriteExecute\)=/ nextgroup=sdBool,sdErr syn match sdExecKey contained /^Environment=/ nextgroup=sdEnvDefs +syn match sdExecKey contained /^UnsetEnvironment=/ nextgroup=sdEnvName syn match sdExecKey contained /^EnvironmentFile=-\=/ contains=sdEnvDashFlag nextgroup=sdFilename,sdErr syn match sdExecFlag contained /-\=@\=/ nextgroup=sdExecFile,sdErr @@ -166,6 +167,8 @@ syn match sdEnvDashFlag contained /-/ nextgroup=sdFilename,sdErr syn match sdEnvDef contained /\i\+=/he=e-1 nextgroup=sdEnvValue syn match sdEnvDefQuoted contained /['"]\@<=\i\+=/he=e-1 hi link sdEnvDefQuoted sdEnvDef +syn match sdEnvName contained /\i\+/ +hi link sdEnvName sdEnvDef syn region sdEnvSQuotes contained start=/'/ skip=+\\'+ end=/'/ contains=sdEnvDefQuoted syn region sdEnvDQuotes contained start=/"/ skip=+\\"+ end=/"/ contains=sdEnvDefQuoted syn match sdEnvValue contained /\S*/ From 0833baa5a0781c23d74fb117bb391a2e8a1b7dcf Mon Sep 17 00:00:00 2001 From: lilydjwg Date: Thu, 10 Dec 2020 19:33:20 +0800 Subject: [PATCH 7/7] %h can appear at the start of sdFilename --- syntax/systemd.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/syntax/systemd.vim b/syntax/systemd.vim index b9a9772..b4ed35e 100644 --- a/syntax/systemd.vim +++ b/syntax/systemd.vim @@ -28,7 +28,7 @@ syn match sdOctal contained nextgroup=sdErr /0\o\{3,4}/ syn match sdDuration contained nextgroup=sdErr /\d\+/ syn match sdDuration contained nextgroup=sdErr /\%(\d\+\s*\%(usec\|msec\|seconds\=\|minutes\=\|hours\=\|days\=\|weeks\=\|months\=\|years\=\|us\|ms\|sec\|min\|hr\|[smhdwMy]\)\s*\)\+/ syn match sdDatasize contained nextgroup=sdErr /\d\+[KMGT]/ -syn match sdFilename contained nextgroup=sdErr /\/\S*/ +syn match sdFilename contained nextgroup=sdErr /\%(%h\)\?\/\S*/ syn match sdPercent contained nextgroup=sdErr /\d\+%/ syn keyword sdBool contained nextgroup=sdErr 1 yes true on 0 no false off syn match sdUnitName contained /\S\+\.\(automount\|mount\|swap\|socket\|service\|target\|path\|timer\|device\|slice\|scope\)\_s/