Commit: runtime(sh): Update syntax, improve wildcard character class matching

1 view
Skip to first unread message

Christian Brabandt

unread,
May 10, 2025, 3:00:14 PM5/10/25
to vim...@googlegroups.com
runtime(sh): Update syntax, improve wildcard character class matching

Commit: https://github.com/vim/vim/commit/839b79eeb33a41a5b368ad56aeaaa94f5fbace92
Author: Doug Kearns <dougk...@gmail.com>
Date: Sat May 10 20:57:10 2025 +0200

runtime(sh): Update syntax, improve wildcard character class matching

- 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 <c...@256bit.org>
Signed-off-by: Doug Kearns <dougk...@gmail.com>

diff --git a/runtime/syntax/sh.vim b/runtime/syntax/sh.vim
index c04b16fa0..b0e02b981 100644
--- a/runtime/syntax/sh.vim
+++ b/runtime/syntax/sh.vim
@@ -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
"======
Reply all
Reply to author
Forward
0 new messages