microsoft / microsoft/TypeScript

On TypeScript 7, Call hierarchy shows a full absolute path instead of file name + relative path

Đang mở
#64,097 1 bình luận 10 reaction 2 người được giao Xem trên GitHub

@RyanCavanaugh đang làm issue này rồi.

Từ ngày 31/8/2026.

  • #64108 của @copilot-swe-agent — đang mở
Bug
Ngôn ngữ chính
Go
Star
111k
Fork
14.3k
Merge trung bình
2 ngày 4 giờ
Pull request đã merge (30 ngày)
132

Mô tả

### 🔎 Search Terms

"call hierarchy"
"function call hierarchy files"
"call hierarchy file path"
"absolute path"
"full file path"

Found: Possibly related [#36511](https://github.com/microsoft/TypeScript/issues/36511) — same symptom, reported in 2020 and closed as fixed.

### 🕗 Version & Regression Information

- Work as expected on `6.0.3`: TypeScript and JavaScript Language Features (built-in)
- Bug on `TypeScriptTeam.native-preview` `0.20260226.1` (first version with Call Hierarchy support)
- Bug on `TypeScriptTeam.native-preview` `0.20260708.2` (latest)

### ⏯ Playground Link

https://github.com/brian-xu-vlt/typescript-hierarchy-repro

### 💻 Code

> [!IMPORTANT]
> I provided a repository above because the playground does not seem to support `show call hierarchy` on a symbol in order to reproduce the bug, but below is [the playground code](https://www.typescriptlang.org/play/?ts=6.0.0-dev.20260416#code/FAUwHgDg9gTgLgAgMZQHYGdEBsQDcRYDyqICAvAgBS4CGWAriAFwKr0C2ARiDAJQtsuPcgD4EAb2AIEMEHHoxUCODRgBzOQDF6qJHACWaanUa8A3MAC+F4ADMdew0pz4sAFQDuUYw2asO3HwCAcKS0rLyigguBMQgPqYWlsDAKBiI4tF4BG4AFrKkluQSUlmueQUsCX6Cgfz+QjCiJdLhcgrO2e5e1eallgA0VjZpmGUEmlAKxdXBjfW4UPoAJs1hyGjoUDgAdFhQapQx7vkg8QAsAEy8fdYp4NDwCPa6BmjKqhpw2q9Osw11OaBFoydpRWi+BAAKgQlySwCAA) form the provided repository in case it helps

`callers.ts`
```ts
import { targetFunction } from "./target.js";

export const levelOne = (value: number): number => {
return targetFunction(value);
};

function levelTwo(value: number): number {
return levelOne(value);
}

const { levelThree } = {
levelThree: (value: number): number => {
return levelTwo(value);
},
};

const levelFour = (value: number): void => {
console.log(levelThree(42));
};
```

`target.ts`
```ts
export function targetFunction(value: number): number {
return value * 2;
}
```

### 🙁 Actual behavior

## Steps to reproduce

1. Clone this repo (https://github.com/brian-xu-vlt/typescript-hierarchy-repro) and run `pnpm install`.
2. Open `src/target.ts`.
3. On `targetFunction` (line 1) Run **Show Call Hierarchy** (`Shift+Alt+H`) and expand the incoming calls
down to the last level.
**🚨 → See the issue: The hierarchy is `targetFunction` → `levelOne` → `levelTwo`, then a node for the
containing file with a full path. That last node is where the two TS versions differ.**

Image

### 🙂 Expected behavior

The file node is labelled the way TypeScript 6 labels it: the `file name`, with
the path relative to the workspace shown as the secondary detail.

Image

### Additional information about the issue

## Real life issue
For a simple call the issue is benign, but in real monorepos, a list of many absolute paths make it very hard to navigate the call hierarchy.

Image

## Language server likely not the root cause

The reproduction repository contains a simple script to show `tsserver` and TypeScript 7 LSP server produce the same value, meaning the issue is quite likely to come from `TypeScriptTeam.native-preview`

## Show to run

```sh
# with typescript 6.0.3 installed, over the tsserver JSON protocol
node tools/callhierarchy.mjs ./src/target.ts targetFunction --depth 10 --engine tsserver

# with typescript 7.0.2 installed, over LSP
node tools/callhierarchy.mjs ./src/target.ts targetFunction --depth 10 --engine lsp
```

## Result for TS6 and TS7
Image

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.