mirror of
https://github.com/filp/whoops.git
synced 2026-09-13 11:16:26 +00:00
Merge pull request #397 from jonasdt/break-on-delimiter
Break filenames and namespaces on the delimiter
This commit is contained in:
@@ -58,7 +58,9 @@ class Frame implements Serializable
|
||||
if ($shortened && is_string($file)) {
|
||||
// Replace the part of the path that all frames have in common, and add 'soft hyphens' for smoother line-breaks.
|
||||
$dirname = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))));
|
||||
$file = str_replace($dirname, "…", $file);
|
||||
if ($dirname !== '/') {
|
||||
$file = str_replace($dirname, "…", $file);
|
||||
}
|
||||
$file = str_replace("/", "/­", $file);
|
||||
}
|
||||
|
||||
|
||||
@@ -157,6 +157,14 @@ header {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.frame-index {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.frame-method-info {
|
||||
margin-left: 24px;
|
||||
}
|
||||
|
||||
.frame-index {
|
||||
font-size: 11px;
|
||||
color: #a29d9d;
|
||||
@@ -172,7 +180,6 @@ header {
|
||||
|
||||
.frame-file {
|
||||
font-family: "Inconsolata", "Fira Mono", "Source Code Pro", Monaco, Consolas, "Lucida Console", monospace;
|
||||
word-wrap: break-word;
|
||||
color: #a29d9d;
|
||||
}
|
||||
|
||||
@@ -263,6 +270,10 @@ header {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.delimiter {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.data-table-container label {
|
||||
font-size: 16px;
|
||||
color: #303030;
|
||||
|
||||
@@ -10,10 +10,10 @@
|
||||
<?php if ($filePath && $editorHref = $handler->getEditorHref($filePath, (int) $line)): ?>
|
||||
Open:
|
||||
<a href="<?php echo $editorHref ?>" class="editor-link"<?php echo ($handler->getEditorAjax($filePath, (int) $line) ? ' data-ajax' : '') ?>>
|
||||
<strong><?php echo $tpl->escape($filePath ?: '<#unknown>') ?></strong>
|
||||
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<strong><?php echo $tpl->escape($filePath ?: '<#unknown>') ?></strong>
|
||||
<strong><?php echo $tpl->breakOnDelimiter('/', $tpl->escape($filePath ?: '<#unknown>')) ?></strong>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<?php
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
for that particular frame */ ?>
|
||||
<?php foreach ($frames as $i => $frame): ?>
|
||||
<div class="frame <?php echo ($i == 0 ? 'active' : '') ?>" id="frame-line-<?php echo $i ?>">
|
||||
<span class="frame-index"><?php echo (count($frames) - $i - 1) ?></span>
|
||||
<div class="frame-method-info">
|
||||
<span class="frame-index"><?php echo (count($frames) - $i - 1) ?></span>
|
||||
<span class="frame-class"><?php echo $tpl->escape($frame->getClass() ?: '') ?></span>
|
||||
<span class="frame-function"><?php echo $tpl->escape($frame->getFunction() ?: '') ?></span>
|
||||
<span class="frame-class"><?php echo $tpl->breakOnDelimiter('\\', $tpl->escape($frame->getClass() ?: '')) ?></span>
|
||||
<span class="frame-function"><?php echo $tpl->breakOnDelimiter('\\', $tpl->escape($frame->getFunction() ?: '')) ?></span>
|
||||
</div>
|
||||
|
||||
<span class="frame-file">
|
||||
<?php echo ($frame->getFile(true) ?: '<#unknown>') ?><!--
|
||||
<div class="frame-file">
|
||||
<?php echo $frame->getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?><!--
|
||||
--><span class="frame-line"><?php echo (int) $frame->getLine() ?></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
|
||||
@@ -79,6 +79,39 @@ class TemplateHelper
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure that the given string breaks on the delimiter.
|
||||
*
|
||||
* @param string $delimiter
|
||||
* @param string $s
|
||||
* @return string
|
||||
*/
|
||||
public function breakOnDelimiter($delimiter, $s)
|
||||
{
|
||||
$parts = explode($delimiter, $s);
|
||||
foreach ($parts as &$part) {
|
||||
$part = '<div class="delimiter">' . $part . '</div>';
|
||||
}
|
||||
|
||||
return implode($delimiter, $parts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace the part of the path that all files have in common.
|
||||
*
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public function shorten($path)
|
||||
{
|
||||
$dirname = dirname(dirname(dirname(dirname(dirname(dirname(__DIR__))))));
|
||||
if ($dirname != "/") {
|
||||
$path = str_replace($dirname, '…', $path);
|
||||
}
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
private function getDumper()
|
||||
{
|
||||
if (!$this->htmlDumper && class_exists('Symfony\Component\VarDumper\Cloner\VarCloner')) {
|
||||
|
||||
Reference in New Issue
Block a user