Commit: runtime(make): fix wrong highlighting with $ inside double quotes

0 views
Skip to first unread message

Christian Brabandt

unread,
Apr 17, 2026, 10:45:18 AM (24 hours ago) Apr 17
to vim...@googlegroups.com
runtime(make): fix wrong highlighting with $ inside double quotes

Commit: https://github.com/vim/vim/commit/450895d86b7b22fb730c27dbd3dfe089b66c7d5c
Author: Christian Brabandt <c...@256bit.org>
Date: Thu Apr 16 21:25:43 2026 +0000

runtime(make): fix wrong highlighting with $ inside double quotes

fixes: https://github.com/vim/vim/issues/19986

Co-authored-by: Anton Khirnov <an...@khirnov.net>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/syntax/make.vim b/runtime/syntax/make.vim
index 0e973237a..530b41e0e 100644
--- a/runtime/syntax/make.vim
+++ b/runtime/syntax/make.vim
@@ -9,6 +9,7 @@
" 2025 Oct 25 by Vim project: update makeTargetinDefine highlighting (#18570)
" 2025 Dec 23 by Vim project: fix too greedy match (#18938)
" 2025 Dec 23 by Vim project: wrong highlight with paranthesis inside quotes (#18818)
+" 2026 Apr 17 by Vim project: wrong highlight $ inside quotes (#19986)

" quit when a syntax file was already loaded
if exists("b:current_syntax")
@@ -41,7 +42,7 @@ endif
syn match makeIdent "\$\$\w*"
syn match makeIdent "\$\$\$\$\w*" containedin=makeDefine
syn match makeIdent "\$[^({]"
-syn match makeIdent "\$\$[^({]" containedin=makeDefine
+syn match makeIdent "\$\$[^({\"']" containedin=makeDefine
if get(b:, 'make_flavor', s:make_flavor) == 'microsoft'
syn region makeIdent start="\$(" end=")" contains=makeStatement,makeIdent,makeDString,makeSString
syn region makeIdent start="\${" end="}" contains=makeStatement,makeIdent,makeDString,makeSString
diff --git a/runtime/syntax/testdir/dumps/make_01_00.dump b/runtime/syntax/testdir/dumps/make_01_00.dump
index d476fcd2a..cf31afb97 100644
--- a/runtime/syntax/testdir/dumps/make_01_00.dump
+++ b/runtime/syntax/testdir/dumps/make_01_00.dump
@@ -14,7 +14,7 @@
@75
|d+0#00e0e07&|e|f|a|u|l|t|:| +0#0000000&@66
| +0#e000002&@7|$+0#00e0e07&|(|c+0#af5f00255&|a|l@1| +0#00e0e07&|s|a|y|,|"+0#e000002&|H|e|l@1|o| |(|w|o|r|l|d|)|!|"|)+0#00e0e07&| +0#0000000&@38
-|~+0#4040ff13&| @73
-|~| @73
-|~| @73
-| +0#0000000&@56|1|,|1| @10|A|l@1|
+@75
+|f+0#00e0e07&|o@1|:| +0#0000000&@70
+| +0#e000002&@7|e|c|h|o| |"|b|a|r|$+0#00e0e07&@1|"+0#e000002&| |b|a|z| +0#0000000&@50
+@57|1|,|1| @10|A|l@1|
diff --git a/runtime/syntax/testdir/input/make_01.mak b/runtime/syntax/testdir/input/make_01.mak
index e97c13c0a..082972a59 100644
--- a/runtime/syntax/testdir/input/make_01.mak
+++ b/runtime/syntax/testdir/input/make_01.mak
@@ -14,3 +14,6 @@ endef

default:
$(call say,"Hello (world)!")
+
+foo:
+ echo "bar$$" baz
Reply all
Reply to author
Forward
0 new messages