diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-21 10:31:09 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-21 10:31:09 +0000 |
| commit | af6bb061ff447f860c514b60202c3192ceec952b (patch) | |
| tree | 09cf21eb75b8d7f6b1771c38765341836a2b890c /plugin/src | |
| parent | 9939ebe7f0ec25b042c9d83ed651cde0e2ea3a30 (diff) | |
fix(plugin): recognize literal escapes and C string suffixes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'plugin/src')
| -rw-r--r-- | plugin/src/lexical.js | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/plugin/src/lexical.js b/plugin/src/lexical.js index ff01166..fff8091 100644 --- a/plugin/src/lexical.js +++ b/plugin/src/lexical.js @@ -1,7 +1,7 @@ 'use strict'; // Preserve UTF-16 offsets and newlines, masking CIE quotes and // comments. -// Unlike C++, CIE has no escapes or multiline literals. +// Backslash escapes protect the next character; literals end at each newline. function codeOnly(text) { let quote = null; let comment = false; @@ -15,12 +15,11 @@ function codeOnly(text) { } else if (comment) { result.push(' '); } else if (quote) { - if (char === quote) quote = null; result.push(' '); - } else if (text.slice(i, i + 3) === "'''") { - // The compiler accepts a quote character as a three-quote CHAR literal. - result.push(' ', ' ', ' '); - i += 2; + if (char === '\\' && i + 1 < text.length && !/[\r\n]/.test(text[i + 1])) { + result.push(' '); + i++; + } else if (char === quote) quote = null; } else if (char === '"' || char === "'") { quote = char; result.push(' '); |
