### ๐ 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.** <img width="1800" height="957" alt="Image" src="https://github.com/user-attachments/assets/5c3b5120-c4c2-4297-a1bc-4a1c5a1a4ea5" /> ### ๐ 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. <img width="1800" height="957" alt="Image" src="https://github.com/user-attachments/assets/986616ff-b64e-4afb-b66d-7bb2f6c409ef" /> ### 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. <img width="2201" height="494" alt="Image" src="https://github.com/user-attachments/assets/abeb3a9b-286d-43da-9ac7-70822deb2a72" /> ## 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 <img width="1190" height="665" alt="Image" src="https://github.com/user-attachments/assets/ad887e91-6451-441e-8e8f-93e40559237e" />