]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
runtime(sh): Update syntax, improve wildcard character class matching
authorDoug Kearns <dougkearns@gmail.com>
Sat, 10 May 2025 18:57:10 +0000 (20:57 +0200)
committerChristian Brabandt <cb@256bit.org>
Sat, 10 May 2025 18:57:10 +0000 (20:57 +0200)
- Default to POSIX supported classes.
- Add a KornShell specific class list.
- Remove "or" from the Bash class list, presumably a typo.

closes: #17293

Signed-off-by: Christian Brabandt <cb@256bit.org>
Signed-off-by: Doug Kearns <dougkearns@gmail.com>
runtime/syntax/sh.vim

index c04b16fa0e90210f306ac9ad963f778dc721c291..b0e02b9813ec340e740b2ed115d715701ea1481a 100644 (file)
@@ -13,6 +13,7 @@
 "              2025 Apr 29 match escaped chars in test operands (#17221)
 "              2025 May 06 improve single-quote string matching in parameter expansions
 "              2025 May 06 match KornShell compound arrays
+"              2025 May 10 improve wildcard character class lists
 " Version:             208
 " Former URL:          http://www.drchip.org/astronaut/vim/index.html#SYNTAX_SH
 " For options and settings, please use:      :help ft-sh-syntax
@@ -325,7 +326,7 @@ endif
 " Character Class In Range: {{{1
 " =========================
 syn match   shCharClassOther   contained       "\[:\w\{-}:\]"
-syn match   shCharClass        contained       "\[:\(backspace\|escape\|return\|xdigit\|alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|tab\):\]"
+syn match   shCharClass        contained       "\[:\%(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\):\]"
 syn match   shCollSymb contained       "\[\..\{-}\.\]"
 syn match   shEqClass  contained       "\[=.\{-}=\]"
 
@@ -378,7 +379,9 @@ syn region  shCaseDoubleQuote       matchgroup=shQuote start=+"+ skip=+\\\\\|\\.+ end=
 syn region  shCaseCommandSub   start=+`+ skip=+\\\\\|\\.+ end=+`+              contains=@shCommandSubList              skipwhite skipnl nextgroup=shCaseBar    contained
 call s:GenerateBracketExpressionItems({'itemGroup': 'shCaseRange', 'bracketGroup': 'shBracketExprDelim', 'extraArgs': 'skip=+\\\\+ contained'})
 if exists("b:is_bash")
- syn match   shCharClass       '\[:\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|or\|xdigit\):\]'                       contained
+ syn match   shCharClass       "\[:\%(alnum\|alpha\|ascii\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|xdigit\):\]"   contained
+elseif exists("b:is_kornshell")
+ syn match   shCharClass       "\[:\%(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|word\|xdigit\):\]"  contained
 endif
 " Misc: {{{1
 "======