Skip to content

Commit eefcf8c

Browse files
committed
Ensure that JetBrains terminal sees correct relative path.
1 parent 38a7dfd commit eefcf8c

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

src/Command/ErrorFormatter/TableErrorFormatter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public function formatErrors(
110110
}
111111

112112
if (getenv('TERMINAL_EMULATOR') === 'JetBrains-JediTerm') {
113-
$title = $this->relativePathHelper->getRelativePath($filePath);
113+
$title = $this->simpleRelativePathHelper->getRelativePath($filePath);
114114
$message .= sprintf("\nat %s:%d", $title, $error->getLine() ?? 0);
115115

116116
} elseif (is_string($this->editorUrl)) {

tests/PHPStan/Command/ErrorFormatter/TableErrorFormatterTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,31 @@ public function testBug13317(): void
424424
);
425425
}
426426

427+
public function testJetBrainsTerminalRelativePath(): void
428+
{
429+
putenv('TERMINAL_EMULATOR=JetBrains-JediTerm');
430+
431+
// FuzzyRelativePathHelper trims path segments based on analysed paths.
432+
$analysed_path = self::DIRECTORY_PATH . '/rel';
433+
$relativePathHelper = new FuzzyRelativePathHelper(new NullRelativePathHelper(), self::DIRECTORY_PATH, [$analysed_path], '/');
434+
435+
$formatter = new TableErrorFormatter(
436+
$relativePathHelper,
437+
new SimpleRelativePathHelper(self::DIRECTORY_PATH),
438+
new CiDetectedErrorFormatter(
439+
new GithubErrorFormatter($relativePathHelper),
440+
new TeamcityErrorFormatter($relativePathHelper),
441+
),
442+
false,
443+
null,
444+
null,
445+
);
446+
$error = new Error('Test', 'Foo.php', 12, filePath: self::DIRECTORY_PATH . '/rel/Foo.php');
447+
$formatter->formatErrors(new AnalysisResult([$error], [], [], [], [], false, null, true, 0, false, []), $this->getOutput(true));
448+
449+
$this->assertStringContainsString('at rel/Foo.php:12', $this->getOutputContent(true));
450+
}
451+
427452
private function createErrorFormatter(?string $editorUrl, ?string $editorUrlTitle = null): TableErrorFormatter
428453
{
429454
$relativePathHelper = new FuzzyRelativePathHelper(new NullRelativePathHelper(), self::DIRECTORY_PATH, [], '/');

0 commit comments

Comments
 (0)