From c25da5cc2de4e6f96b3a0a2813050355a20dd0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tinjo=20Sch=C3=B6ni?= <32767367+tscni@users.noreply.github.com> Date: Sun, 9 Jun 2024 20:42:34 +0200 Subject: [PATCH] [ErrorHandler] Fix rendered exception code highlighting on PHP 8.3 --- ErrorRenderer/HtmlErrorRenderer.php | 8 +++----- Resources/assets/css/exception.css | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/ErrorRenderer/HtmlErrorRenderer.php b/ErrorRenderer/HtmlErrorRenderer.php index 5b264fa..05cbeec 100644 --- a/ErrorRenderer/HtmlErrorRenderer.php +++ b/ErrorRenderer/HtmlErrorRenderer.php @@ -274,12 +274,10 @@ private function fileExcerpt(string $file, int $line, int $srcContext = 3): stri if (\PHP_VERSION_ID >= 80300) { // remove main pre/code tags $code = preg_replace('#^
]++)>((?:[^<]*+\\n)++[^<]*+)
#', function ($m) {
- return "".str_replace("\n", "
\n", $m[2]).'
';
+ // split multiline span tags
+ $code = preg_replace_callback('#]++)>((?:[^<\\n]*+\\n)++[^<]*+)#', function ($m) {
+ return "".str_replace("\n", "\n", $m[2]).'';
}, $code);
- // Convert spaces to html entities to preserve indentation when rendered
- $code = str_replace(' ', ' ', $code);
$content = explode("\n", $code);
} else {
// remove main code/span tags
diff --git a/Resources/assets/css/exception.css b/Resources/assets/css/exception.css
index 7cb3206..2d05a5e 100644
--- a/Resources/assets/css/exception.css
+++ b/Resources/assets/css/exception.css
@@ -242,7 +242,7 @@ header .container { display: flex; justify-content: space-between; }
.trace-code li { color: #969896; margin: 0; padding-left: 10px; float: left; width: 100%; }
.trace-code li + li { margin-top: 5px; }
.trace-code li.selected { background: var(--trace-selected-background); margin-top: 2px; }
-.trace-code li code { color: var(--base-6); white-space: nowrap; }
+.trace-code li code { color: var(--base-6); white-space: pre; }
.trace-as-text .stacktrace { line-height: 1.8; margin: 0 0 15px; white-space: pre-wrap; }