Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

project: Allow running multiple instances of a single language server within a single worktree #23473

Merged
merged 110 commits into from
Jan 22, 2025

Conversation

osiewicz
Copy link
Contributor

This PR introduces a new entity called Project Tree which is responsible for finding subprojects within a worktree;
a subproject is a language-specific subset of a worktree which should be accurately tracked on the language server side. We'll have an ability to set multiple disjoint workspaceFolders on language server side OR spawn multiple instances of a single language server (which will be the case with e.g. Python language servers, as they need to interact with multiple disjoint virtual environments).
Project Tree assumes that projects of the same LspAdapter kind cannot overlap. Additionally project nesting is not allowed within the scope of a single LspAdapter.

Closes #5108
Re-lands #22182 which I had to revert due to merging it into todays Preview.

Release Notes:

  • Language servers now track their working directory more accurately.

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Jan 22, 2025
@osiewicz osiewicz merged commit 08b3c03 into main Jan 22, 2025
23 checks passed
@osiewicz osiewicz deleted the lsp-tree branch January 22, 2025 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed The user has signed the Contributor License Agreement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rust Analyzer doesn't work with multiple subprojects
1 participant