Skip to content

Commit 35b863f

Browse files
authored
lsh: fix strings in PowerShell (#790)
- herestring terminators must be at start of line - ` is the escape character for strings in this language - single quoted strings do not get escapes at all
1 parent c92c166 commit 35b863f

1 file changed

Lines changed: 20 additions & 6 deletions

File tree

crates/lsh/definitions/powershell.lsh

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,35 @@ pub fn powershell() {
1717
} else if /'/ {
1818
loop {
1919
yield string;
20-
if /\\./ {}
21-
else if /'/ { yield string; break; }
20+
if /'/ { yield string; break; }
2221
await input;
2322
}
24-
} else if /@"/ {
23+
} else if /@'\s*$/ {
24+
yield string;
2525
loop {
26+
if /.*/ {}
2627
yield string;
27-
if /\\./ {}
28-
else if /"@/ { yield string; break; }
2928
await input;
29+
if /'@/ {
30+
yield string;
31+
break;
32+
}
33+
}
34+
} else if /@"\s*$/ {
35+
yield string;
36+
loop {
37+
if /.*/ {}
38+
yield string;
39+
await input;
40+
if /"@/ {
41+
yield string;
42+
break;
43+
}
3044
}
3145
} else if /"/ {
3246
loop {
3347
yield string;
34-
if /\\./ {}
48+
if /`./ {}
3549
else if /"/ { yield string; break; }
3650
await input;
3751
}

0 commit comments

Comments
 (0)