mirror of
https://github.com/zed-industries/zed.git
synced 2026-08-24 00:16:18 +00:00
|
Some checks are pending
Congratsbot / check-author (push) Waiting to run
Congratsbot / congrats (push) Blocked by required conditions
deploy_nightly_docs / deploy_docs (push) Waiting to run
run_tests / orchestrate (push) Waiting to run
run_tests / check_style (push) Waiting to run
run_tests / clippy_windows (push) Blocked by required conditions
run_tests / clippy_linux (push) Blocked by required conditions
run_tests / clippy_mac (push) Blocked by required conditions
run_tests / clippy_mac_x86_64 (push) Blocked by required conditions
run_tests / run_tests_windows (push) Blocked by required conditions
run_tests / run_tests_linux (push) Blocked by required conditions
run_tests / run_tests_mac (push) Blocked by required conditions
run_tests / miri_scheduler (push) Blocked by required conditions
run_tests / doctests (push) Blocked by required conditions
run_tests / check_workspace_binaries (push) Blocked by required conditions
run_tests / build_visual_tests_binary (push) Blocked by required conditions
run_tests / check_wasm (push) Blocked by required conditions
run_tests / check_dependencies (push) Blocked by required conditions
run_tests / check_docs (push) Blocked by required conditions
run_tests / check_licenses (push) Blocked by required conditions
run_tests / check_scripts (push) Blocked by required conditions
run_tests / check_postgres_and_protobuf_migrations (push) Blocked by required conditions
run_tests / extension_tests (push) Blocked by required conditions
run_tests / tests_pass (push) Blocked by required conditions
# Objective Closes #52822 When hovering over the LSP status tooltip for a running language server, the binary path is displayed. Currently, this tooltip shows `LanguageServerBinary.path`. However, many language servers are executed through runtimes such as Node or Python. For example, Zed-managed `Basedpyright` produces a `LanguageServerBinary` like: ```Rust LanguageServerBinary { path: "/usr/bin/node", arguments: [ "/home/xin/.local/share/zed/languages/basedpyright/node_modules/basedpyright/langserver.index.js", "--stdio", ], env: ... } ``` In this case, only `"/usr/bin/node"` is displayed, which doesn't convey useful information about the actual language server script being executed. ## Solution There was a PR #53076 in which I was involved, and the solution there was to populate every language server adapter with a special marker for the path to be shown in the tooltip. That solution is accurate, but in order to make this solution work for extension-provided servers, the final diff became huge for a simple fix. So here, as commented in https://github.com/zed-industries/zed/pull/53076#pullrequestreview-4204849892, a guess is performed by a newly introduced function `tooltip_for_server_binary()` to get the real path to be shown. It may have some edge cases, but works for current cases and is simple to implement. ## Testing Added new unit tests, built and tested locally, with the comparision attached in the Showcase section. ## Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content adheres to Zed's UI standards ([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) and [icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md) guidelines) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable ## Showcase For the mentioned `Basedpyright` language server case, the comparision is shown below: | Before | After | |:--:|:--:| | <img width="431" height="187" alt="before" src="https://github.com/user-attachments/assets/0611f2fe-687b-4d67-ba78-380d89ed0212" /> | <img width="582" height="185" alt="after" src="https://github.com/user-attachments/assets/6ad08720-ac53-4b2d-a72c-3febb441e2f1" /> | --- Release Notes: - Improved the LSP status tooltip to display the target script path for runtime-managed language servers |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| LICENSE-GPL | ||