diff --git a/apps/wing-console/console/design-system/src/text-highlight.tsx b/apps/wing-console/console/design-system/src/text-highlight.tsx index 9e3fee60934..78f3d5cffa5 100644 --- a/apps/wing-console/console/design-system/src/text-highlight.tsx +++ b/apps/wing-console/console/design-system/src/text-highlight.tsx @@ -25,17 +25,22 @@ const highlightJson = (value: string, theme: Theme) => { return `${value .slice(0, CHAR_LIMIT) .replaceAll( - /("(\\u[\dA-Za-z]{4}|\\[^u]|[^"\\])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[Ee][+\-]?\d+)?)/g, + /{(?:[^"\\{}]|"(?:\\.|[^"\\])*"|{(?:[^"\\{}]|"(?:\\.|[^"\\])*")*})*}/g, (match) => { - let className = palette.number; - if (match.startsWith('"')) { - className = match.endsWith(":") ? theme.text1 : palette.string; - } else if (/true|false/.test(match)) { - className = palette.boolean; - } else if (/null/.test(match)) { - className = palette.null; - } - return `${escape(match)}`; + return `${match.replaceAll( + /("(\\u[\dA-Za-z]{4}|\\[^u]|[^"\\])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[Ee][+\-]?\d+)?)/g, + (match) => { + let className = palette.number; + if (match.startsWith('"')) { + className = match.endsWith(":") ? theme.text1 : palette.string; + } else if (/true|false/.test(match)) { + className = palette.boolean; + } else if (/null/.test(match)) { + className = palette.null; + } + return `${escape(match)}`; + }, + )}`; }, )}${value.slice(CHAR_LIMIT)}`; };