Skip to content

Add LSP call hierarchy modal - #53239

Merged
SomeoneToIgnore merged 27 commits into
zed-industries:mainfrom
swiftcoder:call-hierarchy-panel
Aug 27, 2026
Merged

SomeoneToIgnore merged 27 commits into
zed-industries:mainfrom
swiftcoder:call-hierarchy-panel

Conversation

@swiftcoder

@swiftcoder swiftcoder commented Apr 6, 2026 •

Copy link
Copy Markdown
Contributor
image

Closes #14203

Release Notes:

  • Initial Call Hierarchy support in Zed

@cla-bot cla-bot Bot added the cla-signed The user has signed the Contributor License Agreement label Apr 6, 2026
@zed-codeowner-coordinator
zed-codeowner-coordinator Bot requested a review from a team April 6, 2026 13:54
@swiftcoder

Copy link
Copy Markdown
Contributor Author

I've been rebasing this change for about a month - what's the chance we can get some discussion going about whether this is the right approach, and what we'd need to do to get it merged?

swiftcoder and others added 5 commits May 18, 2026 12:33
Resolve conflicts in editor.rs (keep upstream module split and
ShowCallHierarchy export) and zed.proto (renumber call hierarchy
messages after upstream SearchCommits/GetInitialGraphData).

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve proto conflicts by keeping upstream document links alongside
call hierarchy messages, with renumbered field IDs.

Co-authored-by: Cursor <cursoragent@cursor.com>
@alexpana

Copy link
Copy Markdown

I wanted to pick this up myself, incredibly disappointing that there's no discussion over it.

@smitbarmase smitbarmase added the area:language server An umbrella label for all language servers label Jun 30, 2026
@smitbarmase

Copy link
Copy Markdown
Member

Thanks for working on this. Do you think it would be possible to split this PR into a few smaller, more focused chunks?

This is a fairly large change, which makes it difficult to review in one go. Breaking it down would give us a better path toward landing the changes incrementally.

@swiftcoder

Copy link
Copy Markdown
Contributor Author

I can split this into a stack of changes if it helps, but 90% of the review is going to be lsp_command.rs and lsp_store.rs either way. The rest is pretty much all boilerplate (panel layout, settings, etc)

Resolve conflicts in zed.proto (renumber call hierarchy proto fields),
remote_editing_tests.rs (keep both call hierarchy and code action tests),
and page_data.rs (keep call hierarchy settings section with updated git panel).

Co-authored-by: Cursor <cursoragent@cursor.com>
@swiftcoder

Copy link
Copy Markdown
Contributor Author

@smitbarmase I don't have the necessary access to upstream stacked PRs, so I've sent the first one upstream, and stacked the rest in my fork. Appreciated if you could advise on the best way to get these in front of your team:

#60885
swiftcoder#3
swiftcoder#4
swiftcoder#5
swiftcoder#6

@SomeoneToIgnore

Copy link
Copy Markdown
Contributor

Thank you a lot for the work and sorry for such late review: hoped that the original opinions could be discussed with the person who had them.

I think I can pick it up from here, but welcome to add more input if you want to, or test it.
One major decision made for now is to remove the new panel: diff is way smaller and more focused, way less UI design concerns, etc. etc.
We can land it later after polish the main functionality.

Store call hierarchy items with their buffer, originating server id, and
anchor ranges, routing follow-up queries to the item's server only, which
also fixes remote incoming/outgoing calls always failing due to a missing
server id.

Remove the dock panel in favor of the modal picker; drop its settings,
keymaps, icons, and the editor::ShowCallHierarchy action, and add app
menu entries and docs for ShowIncomingCalls and ShowOutgoingCalls.
@swiftcoder

Copy link
Copy Markdown
Contributor Author

Happy to see movement on this! Let me know if there is anything I can do to help

@SomeoneToIgnore

Copy link
Copy Markdown
Contributor

Thank you, I would appreciate some testing, any time you feel like it and once before the actual merge: the idea is to have no flickering/odd text trimming, etc. usability issues.

@SomeoneToIgnore SomeoneToIgnore changed the title Add LSP call hierarchy panel Add LSP call hierarchy modal Aug 27, 2026

@SomeoneToIgnore SomeoneToIgnore left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @swiftcoder — I think I am over with the polish.
As stated, unfortunately, this branch won't include the panel as another huge chunk of work and, most importantly, design (that I cannot provide as good as the code changes).

Hopefully this lies grounds for the further work — would appreciate if you can test it and report anything that you find odd or buggy: posting here or creating new issues, anything goes.

Have been using it for some time and seems like a good start to me, hence will merge.

Thanks a lot for you patience with all this!

@SomeoneToIgnore
SomeoneToIgnore added this pull request to the merge queue Aug 27, 2026
Merged via the queue into zed-industries:main with commit ec312b2 Aug 27, 2026
36 checks passed
playdohface pushed a commit to playdohface/zed that referenced this pull request Aug 29, 2026
<img width="1128" height="953" alt="image"
src="https://github.com/user-attachments/assets/b2017c0a-e25a-49d7-9342-d074014d085c"
/>

Closes zed-industries#14203

Release Notes:
- Initial Call Hierarchy support in Zed

---------

Co-authored-by: Alexey Olshanskiy <gh@aohoy.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
m-altaifi pushed a commit to m-altaifi/zed that referenced this pull request Sep 2, 2026
<img width="1128" height="953" alt="image"
src="https://github.com/user-attachments/assets/b2017c0a-e25a-49d7-9342-d074014d085c"
/>

Closes zed-industries#14203

Release Notes:
- Initial Call Hierarchy support in Zed

---------

Co-authored-by: Alexey Olshanskiy <gh@aohoy.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
HalavicH pushed a commit to HalavicH/zed that referenced this pull request Sep 8, 2026
<img width="1128" height="953" alt="image"
src="https://github.com/user-attachments/assets/b2017c0a-e25a-49d7-9342-d074014d085c"
/>

Closes zed-industries#14203

Release Notes:
- Initial Call Hierarchy support in Zed

---------

Co-authored-by: Alexey Olshanskiy <gh@aohoy.dev>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Kirill Bulatov <kirill@zed.dev>
@d3d9 d3d9 mentioned this pull request Sep 9, 2026
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:language server An umbrella label for all language servers cla-signed The user has signed the Contributor License Agreement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add 'Show Call Hierarchy' panel

6 participants