From af6bb061ff447f860c514b60202c3192ceec952b Mon Sep 17 00:00:00 2001 From: _ov4 Date: Wed, 21 Oct 2026 10:31:09 +0000 Subject: fix(plugin): recognize literal escapes and C string suffixes Co-Authored-By: Claude Opus 5.5 --- plugin/src/lexical.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'plugin/src') 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(' '); -- cgit v1.3.1-4-g156e