Hello,
My initial issue was weird highlighting of double quotes inside of if blocks (probably applies to for, do, etc).
For example in
if [ "$1" = "$2" ]; then
test "$1" = "$2"
"$1" = "$2"
fi
each occurrence of "$1" = "$2" colors whole rhs of equal sign as string (including quotes). Then while looking for why it does that and how I could fix it came across shTestDoubleQuote and shTestSingleQuote. Pretty sure they are the reason this happens. (despite the name they do not apply to test command outside of an if block)
Is that intentional or not?
If it is not, adding matchgroup=shQuote to shTestDoubleQuote fixes the exact problem I stated, but it is a bit more complicated for single quotes: I guess they'll have to be changed from a match to a region like double quotes.
Also I don't really understand what is the reason behind separating sh___Quote and shTest___Quote groups, can't non-test ones be used instead?
Another small note: shTestSingleQuote also contains a '\\.' group. What bash syntax does that cover?
Visual demonstration of issues above:
(vim version 9.1, mentioned syntax groups are same on my machine and in the newest commit on master)
Thanks,
Kirill