ZIm/crates
Piotr Osiewicz 08b3c03241
project: Allow running multiple instances of a single language server within a single worktree (#23473)
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 https://github.com/zed-industries/zed/issues/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.

---------

Co-authored-by: João <joao@zed.dev>
2025-01-22 21:19:02 +01:00
..
activity_indicator chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
anthropic Fix older Anthropic models not supporting -latest tags (#23372) 2025-01-20 13:19:15 -05:00
assets chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
assistant assistant: Extract ConfigurationView to its own module (#23480) 2025-01-22 18:37:00 +00:00
assistant2 assistant2: Handle LLM providers that do not emit StartMessage events (#23485) 2025-01-22 20:15:16 +00:00
assistant_context_editor Extract ContextHistory to assistant_context_editor (#23437) 2025-01-22 01:32:24 +00:00
assistant_settings chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
assistant_slash_command Add assistant_context_editor crate (#23429) 2025-01-21 21:22:59 +00:00
assistant_slash_commands chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
assistant_tool chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
assistant_tools chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
audio chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
auto_update chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
auto_update_ui chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
breadcrumbs chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
call Allow filling co-authors in the git panel's commit input (#23329) 2025-01-18 22:57:17 +02:00
channel Allow filling co-authors in the git panel's commit input (#23329) 2025-01-18 22:57:17 +02:00
cli chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
client Require accepting ToS when enabling zeta (#23255) 2025-01-20 11:48:49 -03:00
clock chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
collab project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
collab_ui Allow filling co-authors in the git panel's commit input (#23329) 2025-01-18 22:57:17 +02:00
collections chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
command_palette Load all key bindings that parse and use markdown in error notifications (#23113) 2025-01-18 22:27:08 +00:00
command_palette_hooks chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
context_server chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
context_server_settings chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
copilot project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
db chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
diagnostics chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
docs_preprocessor Prefer later bindings in keymap section for display in UI (#23378) 2025-01-20 23:20:15 +00:00
editor project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
evals chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
extension chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
extension_api chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
extension_cli chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
extension_host chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
extensions_ui chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
feature_flags chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
feedback chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
file_finder chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
file_icons chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
fireworks chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
fs Fix pulling metadata out of broken symlinks (#22396) 2025-01-21 17:09:16 +00:00
fsevent chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
fuzzy chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
git git: Skip directories in git status output (#23300) 2025-01-20 13:57:19 -05:00
git_hosting_providers chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
git_ui git: Fix the panel's update debouncing (#23462) 2025-01-22 14:33:17 -05:00
go_to_line chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
google_ai chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
gpui Fix single line edit prediction detection (#23456) 2025-01-22 10:00:43 -03:00
gpui_macros project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
html_to_markdown html_to_markdown: Restore ability to publish (#23293) 2025-01-17 17:57:13 +00:00
http_client chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
image_viewer chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
indexed_docs chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
inline_completion Show "tab Accept" only for zeta (#23463) 2025-01-22 13:19:18 -03:00
inline_completion_button Toggle inline completion menu from keyboard (#23380) 2025-01-20 19:11:13 -03:00
install_cli chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
journal chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
language project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
language_extension chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
language_model open_ai: Move from o1-preview to o1 for OpenAI Assistant provider (#23425) 2025-01-21 15:05:21 -05:00
language_model_selector chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
language_models open_ai: Move from o1-preview to o1 for OpenAI Assistant provider (#23425) 2025-01-21 15:05:21 -05:00
language_selector chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
language_tools project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
languages project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
livekit_client chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
livekit_client_macos chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
livekit_server chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
lmstudio chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
lsp project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
markdown chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
markdown_preview Load all key bindings that parse and use markdown in error notifications (#23113) 2025-01-18 22:27:08 +00:00
media chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
menu chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
multi_buffer chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
node_runtime chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
notifications chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
ollama ollama: Add deepseek-r1 context size to defaults (#23420) 2025-01-21 18:31:15 +00:00
open_ai open_ai: Move from o1-preview to o1 for OpenAI Assistant provider (#23425) 2025-01-21 15:05:21 -05:00
outline chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
outline_panel chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
paths chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
picker chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
prettier project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
project project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
project_panel project_panel: Adjust entry background and border colors (#23403) 2025-01-21 11:13:46 -03:00
project_symbols chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
prompt_library Consolidate Assistant panels in assistant2 feature flag (#23442) 2025-01-22 02:56:42 +00:00
proto project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
recent_projects terminal: Add scrollbar (#23256) 2025-01-18 17:36:41 +01:00
refineable project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
release_channel chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
remote chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
remote_server Fix project entry rename in Remote Development (#23382) 2025-01-21 12:48:40 +01:00
repl chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
reqwest_client chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
rich_text chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
rope chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
rpc chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
search chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
semantic_index chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
semantic_version chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
session chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
settings Display keymap errors on initial load (#23394) 2025-01-21 07:14:46 +00:00
settings_ui chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
snippet chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
snippet_provider chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
snippets_ui chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sqlez chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sqlez_macros chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
story chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
storybook Load all key bindings that parse and use markdown in error notifications (#23113) 2025-01-18 22:27:08 +00:00
streaming_diff chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
sum_tree chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
supermaven chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
supermaven_api chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
tab_switcher tab_switcher: Preserve selected position on closed tabs (#22861) 2025-01-20 14:15:25 +02:00
task chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
tasks_ui chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
telemetry chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
telemetry_events chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
terminal terminal: Add scrollbar (#23256) 2025-01-18 17:36:41 +01:00
terminal_view Consolidate Assistant panels in assistant2 feature flag (#23442) 2025-01-22 02:56:42 +00:00
text chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
theme project_panel: Adjust entry background and border colors (#23403) 2025-01-21 11:13:46 -03:00
theme_extension chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
theme_importer chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
theme_selector chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
time_format chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
title_bar title_bar: Simplify git-ui feature flag check (#23475) 2025-01-22 17:28:47 +00:00
toolchain_selector chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
ui Fix button demo in the component preview (#23423) 2025-01-21 19:33:08 +00:00
ui_input chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
ui_macros project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
util git: Implement a basic repository selector (#23419) 2025-01-21 18:11:53 -05:00
vcs_menu chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
vim vim: Fix % not working for multi-char bracket pairs (#23471) 2025-01-22 17:39:11 +01:00
vim_mode_setting chore: Use workspace fields for edition and publish (#23291) 2025-01-17 17:39:22 +01:00
welcome Update "Book Onboarding" destination link (#23464) 2025-01-22 16:24:39 +00:00
workspace Make app notifications appear in new workspaces + dismiss on all workspaces (#23432) 2025-01-22 05:39:04 +00:00
worktree windows: Fix FS-related issues (#23369) 2025-01-21 14:19:23 +08:00
zed project: Allow running multiple instances of a single language server within a single worktree (#23473) 2025-01-22 21:19:02 +01:00
zed_actions Consolidate Assistant panels in assistant2 feature flag (#23442) 2025-01-22 02:56:42 +00:00
zed_predict_tos Require accepting ToS when enabling zeta (#23255) 2025-01-20 11:48:49 -03:00
zeta Show "tab Accept" only for zeta (#23463) 2025-01-22 13:19:18 -03:00