Skip to content

Commit f1a9d2c

Browse files
committed
BlueScreen: clickable classes in exception message
1 parent 5e016cc commit f1a9d2c

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

src/Tracy/BlueScreen/BlueScreen.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,15 @@ private function renderTemplate(\Throwable $exception, string $template, $toScre
120120
'<i>$0</i>',
121121
$messageHtml
122122
);
123+
$messageHtml = preg_replace_callback(
124+
'#\w+\\\\[\w\\\\]+\w#',
125+
function ($m) {
126+
return class_exists($m[0], false) || interface_exists($m[0], false)
127+
? '<a href="' . Helpers::escapeHtml(Helpers::editorUri((new \ReflectionClass($m[0]))->getFileName())) . '">' . $m[0] . '</a>'
128+
: $m[0];
129+
},
130+
$messageHtml
131+
);
123132

124133
$info = array_filter($this->info);
125134
$source = Helpers::getSource();

src/Tracy/BlueScreen/assets/bluescreen.css

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,21 @@
5757
}
5858

5959
#tracy-bs-error a {
60+
border-bottom-color: rgba(255, 255, 255, .3) !important;
61+
}
62+
63+
#tracy-bs-error a.action {
6064
color: white !important;
6165
opacity: 0;
6266
font-size: .7em;
6367
border-bottom: none !important;
6468
}
6569

66-
#tracy-bs-error:hover a {
70+
#tracy-bs-error:hover a.action {
6771
opacity: .6;
6872
}
6973

70-
#tracy-bs-error a:hover {
74+
#tracy-bs-error a.action:hover {
7175
opacity: 1;
7276
}
7377

src/Tracy/BlueScreen/assets/content.phtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ $code = $exception->getCode() ? ' #' . $exception->getCode() : '';
3434

3535
<h1><span><?= $messageHtml ?: Helpers::escapeHtml(Dumper::encodeString($title . $code, self::MAX_MESSAGE_LENGTH)) ?></span>
3636
<?php foreach ($actions as $item): ?>
37-
<a href="<?= Helpers::escapeHtml($item['link']) ?>"<?= empty($item['external']) ? '' : ' target="_blank" rel="noreferrer noopener"'?>><?= Helpers::escapeHtml($item['label']) ?>&#x25ba;</a>
37+
<a href="<?= Helpers::escapeHtml($item['link']) ?>" class="action"<?= empty($item['external']) ? '' : ' target="_blank" rel="noreferrer noopener"'?>><?= Helpers::escapeHtml($item['label']) ?>&#x25ba;</a>
3838
<?php endforeach ?></h1>
3939
</div>
4040

0 commit comments

Comments
 (0)