diff --git a/syntax/systemd.vim b/syntax/systemd.vim index d0c1cc2..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/ @@ -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 @@ -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 @@ -156,14 +156,22 @@ 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 -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 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 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*/ syn match sdFileList contained /.*/ contains=sdFilename,sdErr " CAPABILITIES WOOO {{{ syn case ignore @@ -185,6 +193,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 @@ -206,7 +216,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)