From d942a5260237a6af24292cef065bb6e8f9e963a3 Mon Sep 17 00:00:00 2001 From: "openai-code-agent[bot]" <242516109+Codex@users.noreply.github.com> Date: Thu, 7 May 2026 07:24:39 +0000 Subject: [PATCH 1/3] Initial plan From 1a43ee2ae2b549a150501ff878b13ff669fc3dd5 Mon Sep 17 00:00:00 2001 From: "openai-code-agent[bot]" <242516109+Codex@users.noreply.github.com> Date: Thu, 7 May 2026 07:38:41 +0000 Subject: [PATCH 2/3] Use jetbrains:// protocol in IDE link examples Co-authored-by: vjik <525501+vjik@users.noreply.github.com> --- src/Renderer/HtmlRenderer.php | 2 +- tests/Renderer/HtmlRendererTest.php | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Renderer/HtmlRenderer.php b/src/Renderer/HtmlRenderer.php index 0507c2c..6120e35 100644 --- a/src/Renderer/HtmlRenderer.php +++ b/src/Renderer/HtmlRenderer.php @@ -154,7 +154,7 @@ final class HtmlRenderer implements ThrowableRendererInterface * ```php * static function (string $file, ?int $line): string { * return strtr( - * 'phpstorm://open?file={file}&line={line}', + * 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', * ['{file}' => $file, '{line}' => (string) $line], * ); * } diff --git a/tests/Renderer/HtmlRendererTest.php b/tests/Renderer/HtmlRendererTest.php index 29aeea7..06916a4 100644 --- a/tests/Renderer/HtmlRendererTest.php +++ b/tests/Renderer/HtmlRendererTest.php @@ -589,16 +589,16 @@ public static function dataTraceLinkGenerator(): iterable { yield [null, static fn() => null]; yield [ - 'phpstorm://open?file=test.php&line=42', - static fn(string $file, ?int $line) => "phpstorm://open?file=$file&line=$line", + 'jetbrains://phpstorm/navigate/reference?path=test.php&line=42', + static fn(string $file, ?int $line) => "jetbrains://phpstorm/navigate/reference?path=$file&line=$line", ]; yield [ - 'phpstorm://open?file=test.php&line=42', - 'phpstorm://open?file={file}&line={line}', + 'jetbrains://phpstorm/navigate/reference?path=test.php&line=42', + 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', ]; yield [ - 'phpstorm://open?file=test.php&line=', - 'phpstorm://open?file={file}&line={line}', + 'jetbrains://phpstorm/navigate/reference?path=test.php&line=', + 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', 'test.php', null, ]; @@ -683,14 +683,14 @@ public function testMapFilePath(array $traceFileMap, string $file, string $expec public function testTraceFileMapAppliedInCallStack(): void { $renderer = new HtmlRenderer( - traceLink: 'phpstorm://open?file={file}&line={line}', + traceLink: 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', traceFileMap: [__DIR__ => '/mapped/path'], ); $result = $renderer->renderCallStack(new RuntimeException('test')); $this->assertStringContainsString(' class="trace-link">/mapped/path', $result); - $this->assertStringContainsString('href="phpstorm://open?file=/mapped/path', $result); + $this->assertStringContainsString('href="jetbrains://phpstorm/navigate/reference?path=/mapped/path', $result); } private function createServerRequestMock(): ServerRequestInterface From 3b2e36bf6199679c640ad62a17136d15a0b02d55 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 14 May 2026 06:44:45 +0000 Subject: [PATCH 3/3] Add project to JetBrains trace link examples Agent-Logs-Url: https://github.com/yiisoft/error-handler/sessions/8b68d443-0afe-468f-8437-11d2280d4426 Co-authored-by: vjik <525501+vjik@users.noreply.github.com> --- src/Renderer/HtmlRenderer.php | 2 +- tests/Renderer/HtmlRendererTest.php | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/Renderer/HtmlRenderer.php b/src/Renderer/HtmlRenderer.php index 6120e35..e86b1c9 100644 --- a/src/Renderer/HtmlRenderer.php +++ b/src/Renderer/HtmlRenderer.php @@ -154,7 +154,7 @@ final class HtmlRenderer implements ThrowableRendererInterface * ```php * static function (string $file, ?int $line): string { * return strtr( - * 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', + * 'jetbrains://phpstorm/navigate/reference?project=my-app&path={file}:{line}', * ['{file}' => $file, '{line}' => (string) $line], * ); * } diff --git a/tests/Renderer/HtmlRendererTest.php b/tests/Renderer/HtmlRendererTest.php index 06916a4..6b2f22a 100644 --- a/tests/Renderer/HtmlRendererTest.php +++ b/tests/Renderer/HtmlRendererTest.php @@ -589,16 +589,16 @@ public static function dataTraceLinkGenerator(): iterable { yield [null, static fn() => null]; yield [ - 'jetbrains://phpstorm/navigate/reference?path=test.php&line=42', - static fn(string $file, ?int $line) => "jetbrains://phpstorm/navigate/reference?path=$file&line=$line", + 'jetbrains://phpstorm/navigate/reference?project=my-app&path=test.php:42', + static fn(string $file, ?int $line) => "jetbrains://phpstorm/navigate/reference?project=my-app&path=$file:$line", ]; yield [ - 'jetbrains://phpstorm/navigate/reference?path=test.php&line=42', - 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', + 'jetbrains://phpstorm/navigate/reference?project=my-app&path=test.php:42', + 'jetbrains://phpstorm/navigate/reference?project=my-app&path={file}:{line}', ]; yield [ - 'jetbrains://phpstorm/navigate/reference?path=test.php&line=', - 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', + 'jetbrains://phpstorm/navigate/reference?project=my-app&path=test.php:', + 'jetbrains://phpstorm/navigate/reference?project=my-app&path={file}:{line}', 'test.php', null, ]; @@ -683,14 +683,17 @@ public function testMapFilePath(array $traceFileMap, string $file, string $expec public function testTraceFileMapAppliedInCallStack(): void { $renderer = new HtmlRenderer( - traceLink: 'jetbrains://phpstorm/navigate/reference?path={file}&line={line}', + traceLink: 'jetbrains://phpstorm/navigate/reference?project=my-app&path={file}:{line}', traceFileMap: [__DIR__ => '/mapped/path'], ); $result = $renderer->renderCallStack(new RuntimeException('test')); $this->assertStringContainsString(' class="trace-link">/mapped/path', $result); - $this->assertStringContainsString('href="jetbrains://phpstorm/navigate/reference?path=/mapped/path', $result); + $this->assertStringContainsString( + 'href="jetbrains://phpstorm/navigate/reference?project=my-app&path=/mapped/path', + $result, + ); } private function createServerRequestMock(): ServerRequestInterface