@@ -1091,11 +1091,19 @@ wholechars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_
1091
1091
context # \n brown
1092
1092
spellcheck
1093
1093
1094
- context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]EOF EOF green
1095
- context exclusive whole <<\[\s\]\[-\]\[\s\]\[\\\]END END green
1096
-
1097
1094
context ' ' green
1098
1095
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
+
1099
1107
context " " green
1100
1108
keyword \\* brightgreen
1101
1109
keyword \\@ brightgreen
@@ -1119,6 +1127,53 @@ context " " green
1119
1127
1120
1128
keyword $ brightgreen
1121
1129
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
+
1122
1177
context exclusive ` ` lightgray black
1123
1178
keyword '*' green
1124
1179
keyword " green
0 commit comments