Skip to content

Commit 0e2c613

Browse files
authored
Do not display line number when line is 0 (#31)
Some errors don't have a line number (line 0). In that case, omit the `:0` suffix from the displayed path so the link reads as a file-only reference instead of pointing to a nonsensical line 0.
1 parent 3e9cccc commit 0e2c613

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

src/TicketSwapErrorFormatter.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,8 @@ public static function link(
173173
),
174174
'{relativePath}' => $relativePath,
175175
'{shortPath}' => self::trimPath($relativePath),
176-
'{line}' => $line,
176+
':{line}' => $line === 0 ? '' : ':' . $line,
177+
'{line}' => $line === 0 ? '' : (string) $line,
177178
],
178179
);
179180
}

tests/TicketSwapErrorFormatterTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,28 @@ public static function provideLinkFormats() : iterable
164164
null,
165165
true,
166166
];
167+
yield 'line 0 with editor url' => [
168+
self::isWindows()
169+
? "↳ <href=phpstorm://open?file=c:\www\project\src\Core\Admin\Controller\Dashboard\User\AddUserController.php&line=0>src\Core\Admin\...\User\AddUserController.php</>\n"
170+
: "↳ <href=phpstorm://open?file=/www/project/src/Core/Admin/Controller/Dashboard/User/AddUserController.php&line=0>src/Core/Admin/.../User/AddUserController.php</>\n",
171+
TicketSwapErrorFormatter::LINK_FORMAT_DEFAULT,
172+
0,
173+
self::isWindows() ? 'c:\www\project\src\Core\Admin\Controller\Dashboard\User\AddUserController.php' : '/www/project/src/Core/Admin/Controller/Dashboard/User/AddUserController.php',
174+
self::isWindows() ? 'src\Core\Admin\Controller\Dashboard\User\AddUserController.php' : 'src/Core/Admin/Controller/Dashboard/User/AddUserController.php',
175+
self::PHPSTORM_EDITOR_URL,
176+
true,
177+
];
178+
yield 'line 0 without editor url' => [
179+
self::isWindows()
180+
? "↳ src\\Core\\Admin\\Controller\\Dashboard\\User\\AddUserController.php\n"
181+
: "↳ src/Core/Admin/Controller/Dashboard/User/AddUserController.php\n",
182+
TicketSwapErrorFormatter::LINK_FORMAT_WITHOUT_EDITOR,
183+
0,
184+
self::isWindows() ? 'c:\\www\\project\\src\\Core\\Admin\\Controller\\Dashboard\\User\\AddUserController.php' : '/www/project/src/Core/Admin/Controller/Dashboard/User/AddUserController.php',
185+
self::isWindows() ? 'src\\Core\\Admin\\Controller\\Dashboard\\User\\AddUserController.php' : 'src/Core/Admin/Controller/Dashboard/User/AddUserController.php',
186+
null,
187+
true,
188+
];
167189
}
168190

169191
/**

0 commit comments

Comments
 (0)