Skip to content

Commit 595fef4

Browse files
authored
Merge pull request #4718 from MidnightCommander/4715_fix_heredoc_highlighting
Ticket #4715: fix basic heredoc highlighting for shell syntax
2 parents 4940267 + 4acc03e commit 595fef4

File tree

1 file changed

+58
-3
lines changed

1 file changed

+58
-3
lines changed

misc/syntax/sh.syntax

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1091,11 +1091,19 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
10911091
context # \n brown
10921092
spellcheck
10931093

1094-
context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]EOF EOF green
1095-
context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]END END green
1096-
10971094
context ' ' green
10981095

1096+
# Basic support for heredocs with suppressed variable expansion: 'exclusive' keyword breaks the matching due
1097+
# to a conflict with the rules for quotes, so remove it in all cases, including `\`, for consistency.
1098+
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'"\\
1099+
context whole <<\[\s\]\[-\]\[\s\]\\EOF EOF green
1100+
context whole <<\[\s\]\[-\]\[\s\]\\END END green
1101+
context whole <<\[\s\]\[-\]\[\s\]'EOF' EOF green
1102+
context whole <<\[\s\]\[-\]\[\s\]'END' END green
1103+
context whole <<\[\s\]\[-\]\[\s\]"EOF" EOF green
1104+
context whole <<\[\s\]\[-\]\[\s\]"END" END green
1105+
wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
1106+
10991107
context " " green
11001108
keyword \\* brightgreen
11011109
keyword \\@ brightgreen
@@ -1119,6 +1127,53 @@ context " " green
11191127

11201128
keyword $ brightgreen
11211129

1130+
# Basic support for heredocs with variable expansion
1131+
context exclusive whole <<\[\s\]\[-\]\[\s\]EOF EOF green
1132+
keyword \\* brightgreen
1133+
keyword \\@ brightgreen
1134+
keyword \\$ brightgreen
1135+
keyword \\\\ brightgreen
1136+
keyword \\` brightgreen
1137+
keyword \\" brightgreen
1138+
keyword $(*) brightgreen
1139+
keyword ${*} brightgreen
1140+
keyword $\* brightred
1141+
keyword $@ brightred
1142+
keyword $# brightred
1143+
keyword $? brightred
1144+
keyword $- brightred
1145+
keyword $$ brightred
1146+
keyword $! brightred
1147+
keyword $_ brightred
1148+
keyword wholeright $\[0123456789\] brightred
1149+
1150+
keyword wholeright $+ brightgreen
1151+
1152+
keyword $ brightgreen
1153+
1154+
context exclusive whole <<\[\s\]\[-\]\[\s\]END END green
1155+
keyword \\* brightgreen
1156+
keyword \\@ brightgreen
1157+
keyword \\$ brightgreen
1158+
keyword \\\\ brightgreen
1159+
keyword \\` brightgreen
1160+
keyword \\" brightgreen
1161+
keyword $(*) brightgreen
1162+
keyword ${*} brightgreen
1163+
keyword $\* brightred
1164+
keyword $@ brightred
1165+
keyword $# brightred
1166+
keyword $? brightred
1167+
keyword $- brightred
1168+
keyword $$ brightred
1169+
keyword $! brightred
1170+
keyword $_ brightred
1171+
keyword wholeright $\[0123456789\] brightred
1172+
1173+
keyword wholeright $+ brightgreen
1174+
1175+
keyword $ brightgreen
1176+
11221177
context exclusive ` ` lightgray black
11231178
keyword '*' green
11241179
keyword " green

0 commit comments

Comments
 (0)