diff options
Diffstat (limited to 'vim/after/syntax/sh.vim')
-rw-r--r-- | vim/after/syntax/sh.vim | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/vim/after/syntax/sh.vim b/vim/after/syntax/sh.vim index 8025c567..08dbd857 100644 --- a/vim/after/syntax/sh.vim +++ b/vim/after/syntax/sh.vim @@ -111,7 +111,7 @@ if exists('b:is_posix') syntax clear shRepeat syntax region shRepeat \ matchgroup=shLoop - \ start="\<while\_s" end="\<do\>"me=e-2 + \ start='\<while\_s' end='\<do\>'me=e-2 \ contains=@shLoopList " Run some clustering that core syntax/sh.vim thinks doesn't apply to POSIX; @@ -119,6 +119,21 @@ if exists('b:is_posix') syntax cluster shCaseList add=shRepeat syntax cluster shFunctionList add=shRepeat + " ${foo%bar}, ${foo%%bar}, ${foo#bar}, and ${foo##bar} are all valid forms + " of parameter expansion in POSIX, but sh.vim makes them conditional on + " Bash or Korn shell. We reinstate them (slightly adapted) here. + syntax match shDerefOp contained + \ '##\|#\|%%\|%' + \ nextgroup=@shDerefPatternList + syntax match shDerefPattern contained + \ '[^{}]\+' + \ contains=shDeref,shDerefSimple,shDerefPattern,shDerefString,shCommandSub,shDerefEscape + \ nextgroup=shDerefPattern + syntax region shDerefPattern contained + \ start='{' end='}' + \ contains=shDeref,shDerefSimple,shDerefString,shCommandSub + \ nextgroup=shDerefPattern + endif " Some corrections for highlighting specific to the Bash mode |