diff --git a/src/languages/gcode.js b/src/languages/gcode.js
index 822d997514..45db86f772 100644
--- a/src/languages/gcode.js
+++ b/src/languages/gcode.js
@@ -7,9 +7,10 @@
*/
export default function(hljs) {
+ const regex = hljs.regex;
const GCODE_KEYWORDS = {
$pattern: /[A-Z]+|%/,
- meta: [
+ keywords: [
// conditions
'THEN',
'ELSE',
@@ -61,7 +62,8 @@ export default function(hljs) {
};
- const NUMBER = /[+-]?((\.\d+)|(\d+)(\.\d*)?)/;
+ const LETTER_BOUNDARY_RE = /(?, …
- { match: /(?/ },
+ { match: regex.concat(LETTER_BOUNDARY_RE, /O<.+>/) },
// Checksum at end of line: *71, *199, …
{ match: /\*\s*\d+\s*$/ }
]
@@ -104,18 +104,17 @@ export default function(hljs) {
{
scope: 'variable',
- relevance: 0,
- match: /-?#\s*\d+/,
+ match: /-?#\s*\d+/
},
{
scope: 'property', // Physical axes
- match: new RegExp(`(?N14 G0 X-.6 Y1.590
N15 G0 Z.1
N16 M5 G49 G28 G91 Z0
-N17 CALL O9456
+N17 CALL O9456
N18 #500=0.004
N19 #503=[#500+#501]
N20 VC45=0.0006
VS4=0.0007
N21 G90 G10 L20 P3 X5.Y4. Z6.567
N22 G0 X5000
-N23 IF [#1 LT 0.370] GOTO 49
+N23 IF [#1 LT 0.370] GOTO 49
N24 X-0.678 Y+.990
N25 G84.3 X-0.1
N26 #4=#5*COS[45]
N27 #4=#5*SIN[45]
N28 VZOFZ=652.9658
-%
+%
diff --git a/test/markup/gcode/extended.expect.txt b/test/markup/gcode/extended.expect.txt
index ef15278ff5..a5d82a283a 100644
--- a/test/markup/gcode/extended.expect.txt
+++ b/test/markup/gcode/extended.expect.txt
@@ -1,4 +1,4 @@
-%
+%
@@ -12,7 +12,7 @@
M500
M500
-O<boring> SUB
+O<boring> SUB
#20 = [#1 * SIN[#1]]
#21 = [-#2 * COS[#2]]
@@ -25,7 +25,7 @@
-N1 O107 IF [#10 GT 5]
+N1 O107 IF [#10 GT 5]
N2 G0 A0 B0 C0 U0 V0 W0 X0 Y0 Z0 *71
N3 G100 A100 B0
N4 G5.2 A10.2 B0
@@ -35,12 +35,12 @@
N8 T0
N9 M100 F1 H2 I3 J4 K5 P6 Q7 R8 S9
N10 M587 S"MYROUTER" P"ABCxyz;" "123"
-N10 O107 ENDIF
+N10 O107 ENDIF
-O 108 IF [#10 GT 5]
+O 108 IF [#10 GT 5]
N 102 G 0 A 0 B 0 C 0 U 0 V 0 W 0 X 0 Y 0 Z 0 *71
N 103 G 100 A 100 B 0
N 104 G 5.2 A 10.2 B 0
@@ -50,12 +50,12 @@
N 108 T 0
N 109 M 100 F 1 H 2 I 3 J 4 K 5 P 6 Q 7 R 8 S 9
N 110 M 587 S "MYROUTER" P "ABCxyz;" "123"
-O 108 ENDIF
+O 108 ENDIF
-O109IF[#10GT5]
+O109IF[#10GT5]
N202G0A0B0C0U0V0W0X0Y0Z0*71
N203G100A100B0
N204G5.2A10.2B0
@@ -65,11 +65,11 @@
N208T0
N209M100F1H2I3J4K5P6Q7R8S9
N210M587S"MYROUTER"P"ABCxyz;""123"
-0O109ENDIF
+0O109ENDIF
-O<boring> ENDSUB
+O<boring> ENDSUB
-O<boring> CALL [1] [2] [3] [4] [5]
+O<boring> CALL [1] [2] [3] [4] [5]
@@ -81,4 +81,4 @@ SET_SKEW XY=100.0000,
SKEW_PROFILE SAVE="this name has spaces"
SAVE_CONFIG
-%
+%