365997d
docs: Remove duplicate Clang-Format link (#32359)
Click to expand commit body
Release Notes: - N/A
andrewkolda created
365997d
docs: Remove duplicate Clang-Format link (#32359)
Release Notes: - N/A
andrewkolda created
c57a626
editor: Fix select when click on existing selection (#32365)
Follow-up for https://github.com/zed-industries/zed/pull/30671 Now, when clicking on an existing selection, the cursor will change on `mouse_up` when `drag_and_drop_selection` is `true`. When `drag_and_drop_selection` is `false`, it will change on `mouse_down` (previous default). Release Notes: - N/A
Smit Barmase created
ebea734
Coalesce consecutive spaces in new buffer tab titles (#32363)
VS Code has a behavior where it coalesces consecutive spaces in new buffer tab titles, which I quite like. This presents the content better and allows more meaningful content to be displayed, as consecutive spaces don't count towards the 40 character limit. VS Code <img width="1013" alt="SCR-20250608-uelt" src="https://github.com/user-attachments/assets/71a1fd4b-a506-4eab-b6a4-66096a12f1ad" /> Zed <img width="1136" alt="SCR-20250608-ueif" src="https://github.com/user-attachments/assets/f40fc3c9-0f0f-471d-93ed-be9568fbe778" /> Release Notes: - N/A
Joseph T. Lyons created
4fe0553
editor: Add support for `drag_and_drop_selection` (#30671)
Closes #4958 Release Notes: - Added support for drag and drop text selection. It can be disabled by setting `drag_and_drop_selection` to `false`. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
CharlesChen0823 and Smit Barmase created
b15aef4
Introduce dynamic tab titles for unsaved files based on buffer content (#32353)
https://github.com/user-attachments/assets/0bb08784-251c-4221-890a-2d6b3fb94e0f For new, unsaved files: - If a buffer has no content, or contains only whitespace, use `untitled` - If a buffer has content, take the first 40 chars of the first line | Sublime | VS Code | Zed | |---------|---------|-----| | <img width="227" alt="SCR-20250608-ouux" src="https://github.com/user-attachments/assets/d02b1e50-5775-4252-86e6-6c9d3f6c72fb" /> | <img width="230" alt="SCR-20250608-ousn" src="https://github.com/user-attachments/assets/7c9c016b-642f-4a80-9bc1-8c9bdc7bbd32" /> | <img width="242" alt="SCR-20250608-ovbg" src="https://github.com/user-attachments/assets/c7f4be5c-5bba-4a2a-b477-1392ca938cd5" /> | Note that this implementation also trims all leading whitespace, so that if the buffer has any non-whitespace content, we use it. VS Code and Sublime do not do this. | Sublime | VS Code | Zed | |---------|---------|-----| | <img width="233" alt="SCR-20250608-oviq" src="https://github.com/user-attachments/assets/ccffecc6-0f46-4d1b-8739-740240bc067b" /> | <img width="198" alt="SCR-20250608-ovkq" src="https://github.com/user-attachments/assets/35c20149-f898-417b-aff3-dda22b8cc1f3" /> | <img width="233" alt="SCR-20250608-ovns" src="https://github.com/user-attachments/assets/2509e8f6-254b-4fcb-a0ea-e18e95bb685b" /> | Release Notes: - Introduced dynamic tab titles for unsaved files based on buffer content
Joseph T. Lyons created
23adff6
Add CI check that `cmd-` is not in linux keymaps + check other mods (#32334)
Motivation for the `cmd-` check is that there were a couple keybindings using `cmd-` in the linux keymap and so these were bound to super / windows Release Notes: - N/A
Michael Sloan created
866fe42
Cleanup comments in linux keymaps (#32333)
Release Notes: - N/A
Michael Sloan created
f7b2faf
Fix a few linux keybindings that use `cmd-` instead of `ctrl-` (#32332)
Release Notes: - N/A
Michael Sloan created
5187954
Remove previous multi buffer hardcode from the outline panel (#32321)
Closes https://github.com/zed-industries/zed/issues/32316 Multi buffer design was changed so that control buttons are not occupying extra lines, the hardcoded logic for that is obsolete thus removed. Release Notes: - Fixed incorrect offsets during outline panel navigation in singleton buffers
Kirill Bulatov created
cabd22f
No longer instantiate recently opened agent threads on startup (#32285)
This was causing a lot of work on startup, particularly due to instantiating edit tool cards. The minor downside is that now these threads don't open quite as fast. Includes a few other improvements: * On text thread rename, now immediately updates the metadata for display in the UI instead of waiting for reload. * On text thread rename, first renames the file before writing. Before if the file removal failed you'd end up with a duplicate. * Now only stores text thread file names instead of full paths. This is more concise and allows for the app data dir changing location. * Renames `ThreadStore::unordered_threads` to `ThreadStore::reverse_chronological_threads` (and removes the old one that sorted), since the recent change to use a SQL database queries them in that order. * Removes `ContextStore::reverse_chronological_contexts` since it was only used in one location where it does sorting anyway - no need to sort twice. * `SavedContextMetadata::title` is now `SharedString` instead of `String`. Release Notes: - Fixed regression in startup performance by not deserializing and instantiating recently opened agent threads.
Michael Sloan created
1552198
Cursor keymap: Add cmd-enter to submit inline assistant (#32295)
Closes https://github.com/zed-industries/zed/discussions/29035 Release Notes: - N/A
Tommy D. Rossi created
0da97b0
editor: Respect `multi_cursor_modifier` setting when making columnar selections using mouse (#32273)
Closes https://github.com/zed-industries/zed/issues/31181 Release Notes: - Added the `multi_cursor_modifier` setting to be respected when making columnar selections using the mouse drag. --------- Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
Richard Feldman and Smit Barmase created
037df8c
Simplify logic updating pinned tab count (#32310)
Just a tiny improvement to clean up the logic Release Notes: - N/A
Joseph T. Lyons created
05ac9f1
docs: Missing . from `.sql-formatter.json` (#32312)
See: https://github.com/zed-industries/zed/issues/9537#issuecomment-2952784074 Release Notes: - N/A
Peter Tripp created
9ffb3c5
Add Opus to Model Docs (#32302)
Release Notes: - N/A
morgankrey created
72d787b
Fix panic dragging tabs multiple positions to the right (#32305)
Closes https://github.com/zed-industries/zed/issues/32303 Release Notes: - Fixed a panic that occurred when dragging tabs multiple positions to the right (preview only)
Joseph T. Lyons created
104f601
language_models: Fix Copilot models not loading (#32288)
Recently in this PR: https://github.com/zed-industries/zed/pull/32248 github copilot settings was introduced. This had missing settings update which was leading to github copilot models not getting fetched. This had missing subscription to update the settings inside the copilot language model provider. Which caused it not show models at all. cc @osiewicz Release Notes: - N/A --------- Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
Umesh Yadav and Piotr Osiewicz created
46773eb
docs: Fix typo in SUMMARY.md (#32275)
- Follow-up to: https://github.com/zed-industries/zed/pull/30981 - See also: https://github.com/zed-industries/zed/pull/30844 - See also: https://github.com/zed-industries/zed/pull/31073 Changes made to docs tests meant that failure to build docs did not prevent an automerge. This resulted in breaking main in 65a93a0036acfa680dbf2ba859d8641876ea6057 [action run link](https://github.com/zed-industries/zed/actions/runs/15501437863). CC: @probably-neb Release Notes: - N/A
Peter Tripp created
65a93a0
Add initial FreeBSD script & installation doc (#30981)
This PR adds initial FreeBSD support for building Zed: * Adds `script/freebsd` to install required dependencies on FreeBSD * Adds `docs/freebsd.md` with build instructions and notes * ⚠️ Mentions that `webrtc` is still **work-in-progress** on FreeBSD. Related to : #15309 I’m currently working at discussions : [Discussions](https://github.com/zed-industries/zed/discussions/29550) Release Notes: - N/A --------- Co-authored-by: Peter Tripp <peter@zed.dev>
G36maid and Peter Tripp created
dc63138
Use proper paths when determining file finder icons for external files (#32274)
Before: <img width="576" alt="before" src="https://github.com/user-attachments/assets/8469e27f-c878-4b89-a6f0-577a502fc625" /> After: <img width="558" alt="after" src="https://github.com/user-attachments/assets/b8361b88-c6c6-40a5-890d-047fff8e909e" /> Release Notes: - N/A
Kirill Bulatov created
fa02bd7
Select applicable positions for lsp_ext methods more leniently (#32272)
Closes https://github.com/zed-industries/zed/issues/27238 Release Notes: - Fixed `editor::SwitchSourceHeader` and `editor::ExpandMacroRecursively` not working with text selections
Kirill Bulatov created
6d95fd9
Make `assistant::QuoteSelection` shortcuts work in agent threads (#32270)
Closes: https://github.com/zed-industries/zed/discussions/30626 Release Notes: - Fixed `assistant::QuoteSelection` default shortcuts (`cmd->` and `ctrl->`) so they work in Agent threads too (in addition to text threads and in the Editor pane).
Peter Tripp created
899153d
Stop formatting SQL by default with prettier (#32268)
- Closes: https://github.com/zed-industries/zed/discussions/32261 - Follow-up to: https://github.com/zed-extensions/sql/pull/19 - Follow-up to: https://github.com/zed-industries/zed/pull/32003 The underlying `sql-formatter` used by `prettier-plugin-sql` needs to have the SQL dialect (mysql, postgresql) passed as the prettier language name, while Zed passes `sql`, which default will corrupt sql files with vendor specific extensions (postgresql jsonb operators, etc). I improved the [Zed SQL Language Docs](https://zed.dev/docs/languages/sql) in https://github.com/zed-industries/zed/pull/32003 to show how to use `sql-formatter` directly as an external formatter. Release Notes: - SQL: Disable `format_on_save` using `prettier-plugin-sql` by default. Please see the [Zed SQL Language Docs](https://zed.dev/docs/languages/sql) for settings to use `sql-formatter` directly instead.
Peter Tripp created
77ead25
Implement the rest of the worktree pulls (#32269)
Follow-up of https://github.com/zed-industries/zed/pull/19230 Implements the workspace diagnostics pulling, and replaces "pull diagnostics every open editors' buffer" strategy with "pull changed buffer's diagnostics" + "schedule workspace diagnostics pull" for the rest of the diagnostics. This means that if the server does not support the workspace diagnostics and does not return more in linked files, only the currently edited buffer has its diagnostics updated. This is better than the existing implementation that causes a lot of diagnostics pulls to be done instead, and we can add more heuristics on top later for querying more diagnostics. Release Notes: - N/A
Kirill Bulatov created
9e5f89d
Improve CSS syntax highlighting (#25326)
Release Notes:
- Improved CSS syntax highlighting
| Zed 0.174.6 | With this PR |
| --- | --- |
| 
|

|
- `|`: `operator`
- `and`, `or`, `not`, `only`: `operator` -> `keyword.operator`, as
defined in other languages
- `id_name`, `class_name`: `property`/`attribute` -> `selector`, not a
property name. [CSS
reference](https://www.w3.org/TR/selectors-3/#class-html)
- `namespace_name`: `property` -> `namespace`, not a property name
- `property_name`: `constant` -> `property`, like `feature_name` already
defined
- `(keyword_query)`: `property`, similar to `feature_name`. [CSS
reference](https://www.w3.org/TR/mediaqueries-3/#media1)
- `keyword_query`: `constant.builtin`, [CSS
reference](https://www.w3.org/TR/mediaqueries-3/#media0)
- `plain_value`, `keyframes_name`: `constant.builtin`, [CSS
reference](https://www.w3.org/TR/css-values-3/#value-defs)
- `unit`: `type` -> `type.unit`,
[Atom](https://github.com/atom/language-css/blob/9e4afce058b4593edf03ed1dec6033b163c678f0/grammars/tree-sitter-css.cson#L73)
and [VS
Code](https://github.com/microsoft/vscode/blob/336801752dd09afa76f5429fba846e533bcdb7d9/extensions/css/syntaxes/css.tmLanguage.json#L1393)
also have a `unit` scope for this. [CSS
reference](https://www.w3.org/TR/css3-values/#dimensions)
```css
@media (keyword_query) and keyword_query {}
@supports (feature_name: plain_value) {}
@namespace namespace_name url("string");
namespace_name|tag_name {}
@keyframes keyframes_name {
to {
top: 200unit;
color: #c01045;
}
}
tag_name::before,
#id_name:nth-child(even),
.class_name[attribute_name=plain_value] {
property_name: 2em 1.2em;
--variable: rgb(250, 0, 0);
color: var(--variable);
animation: keyframes_name 5s plain_value;
}
```
chbk created
cf5e76b
git: Add `PushTo` to select which remote to push (#31482)
mostly, I using `git checkout -b branch_name upstream/main` to create new branch which reference remote upstream not my fork. When using `Push` will always failed with not permission. So we need ability to select which remote to push. Current branch is based on my previous pr #26897 Release Notes: - Add `PushTo` to select which remote to push. --------- Co-authored-by: Cole Miller <cole@zed.dev>
CharlesChen0823 and Cole Miller created
9775747
gpui: Pre-allocate paths in open file dialog (#32106)
Pre-allocates the required memory for storing paths returned by open file dialog on windows Release Notes: - N/A
tidely created
b7c2d48
Fix syntax highlighting conflicts with certain glsl types (#32022)
added first line pattern for glsl because some extensions conflict with
others like fragment shaders (.fs) would be highlighted by f#
<details>
| no f# extension no fix | f# extension no fix | f# extension with fix |
|--------|--------|--------|
|

|

|

|
</details>
Release Notes:
- glsl: Added a workaround for an issue where fragment shaders with the `.fs` file extension would be misidentified as F#. Now, adding `#version {version}` to the first line of your fragment shader will ensure it is always recognized as glsl
not a cow created
2fe1293
Improve cursor style behavior for some draggable elements (#31965)
Follow-up to #24797 This PR ensures some cursor styles do not change for draggable elements during dragging. The linked PR covered this on the higher level for draggable divs. However, e.g. the pane divider inbetween two editors is not a draggable div and thus still has the issue that the cursor style changes during dragging. This PR fixes this issue by setting the hitbox to `None` in cases where the element is currently being dragged, which ensures the cursor style is applied to the cursor no matter what during dragging. Namely, this change fixes this for - non-div pane dividers - minimap slider and the - editor scrollbars and implements it for the UI scrollbars (Notably, UI scrollbars do already have `cursor_default` on their parent container but would not keep this during dragging. I opted out on removing this from the parent containers until #30194 or a similar PR is merged). https://github.com/user-attachments/assets/f97859dd-5f1d-4449-ab92-c27f2d933c4a Release Notes: - N/A
Finn Evers created
e0057cc
Fix anchor biases for completion replacement ranges (esp slash commands) (#32262)
Closes #32205 The issue was that in some places the end of the replacement range used anchors with `Bias::Left` instead of `Bias::Right`. Before #31872 completions were recomputed on every change and so the anchor bias didn't matter. After that change, the end anchor didn't move as the user's typing. Changing it to `Bias::Right` to "stick" to the character to the right of the cursor fixes this. Release Notes: - Fixes incorrect auto-completion of `/files` in text threads (Preview Only)
Michael Sloan created
51585e7
Contextualize errors from extensions with extension name and version (#32202)
Before this I'd get log lines like > ERROR [project] missing `database_url` setting Now it's: > ERROR [project] from extension "Postgres Context Server" version 0.0.3: missing `database_url` setting Release Notes: - N/A
Michael Sloan created
52fa7ab
lmstudio: Fill max_tokens using the response from /models (#25606)
The info for `max_tokens` for the model is included in
`{api_url}/models`
I don't think this needs to be `.clamp` like in
`crates/ollama/src/ollama.rs` `get_max_tokens`, but it might need to be
## Before:
Every model shows 2k

## After:

### Json from `{api_url}/models` with model not loaded
```json
{
"id": "qwen2.5-coder-1.5b-instruct-mlx",
"object": "model",
"type": "llm",
"publisher": "lmstudio-community",
"arch": "qwen2",
"compatibility_type": "mlx",
"quantization": "4bit",
"state": "not-loaded",
"max_context_length": 32768
},
```
## Notes
The response from `{api_url}/models` seems to return the `max_tokens`
for the model, not the currently configured context length, but I think
showing the `max_tokens` for the model is better than setting 2k for
everything
`loaded_context_length` exists, but only if the model is loaded at the
startup of zed, which usually isn't the case
maybe `fetch_models` should be rerun when swapping lmstudio models
### Currently configured context
this isn't shown in `{api_url}/models`

### Json from `{api_url}/models` with model loaded
```json
{
"id": "qwen2.5-coder-1.5b-instruct-mlx",
"object": "model",
"type": "llm",
"publisher": "lmstudio-community",
"arch": "qwen2",
"compatibility_type": "mlx",
"quantization": "4bit",
"state": "loaded",
"max_context_length": 32768,
"loaded_context_length": 4096
},
```
Release Notes:
- lmstudio: Fixed showing `max_tokens` in the assistant panel
---------
Co-authored-by: Peter Tripp <peter@zed.dev>
Elijah McMorris and Peter Tripp created
5ad51ca
vim: Show 'j' from jk pre-emptively (#32007)
Fixes: #29812 Fixes: #22538 Co-Authored-By: <corentinhenry@gmail.com> Release Notes: - vim: Multi-key bindings in insert mode will now show the pending keystroke in the buffer. For example if you have `jk` mapped to escape, pressing `j` will immediately show a `j`.
Conrad Irwin created
35a119d
Add Go debugging example to debugger documentation (#31798)
This pull request updates the documentation for the debugger to include Go-specific examples alongside existing Python examples. Documentation update: * [`docs/src/debugger.md`](diffhunk://#diff-aa14715cca56f3ad6a32c669b0c317250dab212b8108136b7ca79217465f39b8R69-R80): Added a new "Go examples" section with a JSON snippet demonstrating how to configure the debugger for Go using Delve. Release Notes: - debugger: Add Go debugging example to debugger documentation --------- Co-authored-by: Cole Miller <cole@zed.dev>
Diógenes Castro and Cole Miller created
bbf3b20
Fix panic when dragging pinned item left in pinned region (#32263)
This was a regression with my recent fixes to pinned tabs. Dragging a pinned tab left in the pinned region would still update the pinned tab count, which would later cause an out-of-bounds later when it used that value to index into a vec. https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1749220447796559 Release Notes: - Fixed a panic caused by dragging a pinned item to the left in the pinned region
Joseph T. Lyons created
c1b9970
ci: Auto-release release prefix hotfixes again (#32265)
Undo: - https://github.com/zed-industries/zed/pull/24894 CC: @JosephTLyons Release Notes: - N/A
Peter Tripp created
69e99b9
Remove unescessary unimplemented (#32264)
Release Notes: - N/A
Mikayla Maki created
0fc85a0
Fix `script/build-linux` with newer GCC (#32029)
If you follow the [workaround advice in the Docs](https://zed.dev/docs/development/linux#installing-a-development-build) for building with a newer GCC, it will error: https://github.com/zed-industries/zed/blob/79b1dd7db8baede7e5dbaa2ad077bca61d9bad49/script/bundle-linux#L88-L91 [Reported on Discord](https://discord.com/channels/869392257814519848/1379093394105696288) Release Notes: - Fixed `script/build-linux` for non-musl builds.
Peter Tripp created
974f724
vim: Enable window shortcuts in Agent panel (#31000)
Release Notes: - Enabled vim window commands (ctrl-w X) when agent panel is focused Co-authored-by: Cole Miller <cole@zed.dev>
Pavle Sokic and Cole Miller created
ca3f465
gpui: Implement dynamic window control elements (#30828)
Allows setting element as window control elements which consist of `Drag`, `Close`, `Max`, or `Min`. This allows you to implement dynamically sized elements that control the platform window, this is used for areas such as the title bar. Currently only implemented for Windows. Release Notes: - N/A
Matin Aniss created
d9efa28
gpui: Fix scroll area to support two-layer scrolling in different directions (#31062)
Release Notes: - N/A --- This change is used to solve the problem of not being able to respond correctly in two-layer scrolling (in different directions). This is a common practical requirement. As in the example, in actual use, there may be a scene with a horizontal scroll in a vertical scroll. Before the modification, if we scroll up and down in the area that can scroll horizontally, it will not respond (because it is blocked by the horizontal scroll layer). ## Before https://github.com/user-attachments/assets/e8ea0118-52a5-44d8-b419-639d4b6c0793 ## After https://github.com/user-attachments/assets/aa14ddd7-5596-4dc5-9c6e-278aabdfef8e ---- This change may cause many side effects, causing some scrolling details to be different from before, and more testing and analysis are needed. I have tested some existing scenarios of Zed (such as opening the Branch panel on the Editor and scrolling) and it seems to be correct (but it is possible that I don’t know some interaction details). Here, the person who added this line of code before needs to evaluate the original purpose.
Jason Lee created
ac806d9
gpui: Introduce dash array support for `PathBuilder` (#31678)
A simple way to draw dashed lines. https://github.com/user-attachments/assets/2105d7b2-42d0-4d73-bb29-83a4a6bd7029 Release Notes: - N/A
Floyd Wang created
73cd6ef
Add UI for configuring the API Url directly (#32248)
Closes #22901 Release Notes: - Copilot Chat endpoint URLs can now be configured via `settings.json` or Configuration View.
Piotr Osiewicz created
019a14b
Replace `async-watch` with a custom watch (#32245)
The `async-watch` crate doesn't seem to be maintained and we noticed
several panics coming from it, such as:
```
[bug] failed to observe change after notificaton.
zed::reliability::init_panic_hook::{{closure}}::hea8cdcb6299fad6b+154543526
std::panicking::rust_panic_with_hook::h33b18b24045abff4+127578547
std::panicking::begin_panic_handler::{{closure}}::hf8313cc2fd0126bc+127577770
std::sys::backtrace::__rust_end_short_backtrace::h57fe07c8aea5c98a+127571385
__rustc[95feac21a9532783]::rust_begin_unwind+127576909
core::panicking::panic_fmt::hd54fb667be51beea+9433328
core::option::expect_failed::h8456634a3dada3e4+9433291
assistant_tools::edit_agent::EditAgent::apply_edit_chunks::{{closure}}::habe2e1a32b267fd4+26921553
gpui::app::async_context::AsyncApp::spawn::{{closure}}::h12f5f25757f572ea+25923441
async_task::raw::RawTask<F,T,S,M>::run::h3cca0d402690ccba+25186815
<gpui::platform::linux::x11::client::X11Client as gpui::platform::linux::platform::LinuxClient>::run::h26264aefbcfbc14b+73961666
gpui::platform::linux::platform::<impl gpui::platform::Platform for P>::run::hb12dcd4abad715b5+73562509
gpui::app::Application::run::h0f936a5f855a3f9f+150676820
zed::main::ha17f9a25fe257d35+154788471
std::sys::backtrace::__rust_begin_short_backtrace::h1edd02429370b2bd+154624579
std::rt::lang_start::{{closure}}::h3d2e300f10059b0a+154264777
std::rt::lang_start_internal::h418648f91f5be3a1+127502049
main+154806636
__libc_start_main+46051972301573
_start+12358494
```
I didn't find an executor-agnostic watch crate that was well maintained
(we already tried postage and async-watch), so decided to implement it
our own version.
Release Notes:
- Fixed a panic that could sometimes occur when the agent performed
edits.
Antonio Scandurra created
95d78ff
context server: Make requests type safe (#32254)
This changes the context server crate so that the input/output for a
request are encoded at the type level, similar to how it is done for LSP
requests.
This also makes it easier to write tests that mock context servers, e.g.
you can write something like this now when using the `test-support`
feature of the `context-server` crate:
```rust
create_fake_transport("mcp-1", cx.background_executor())
.on_request::<context_server::types::request::PromptsList>(|_params| {
PromptsListResponse {
prompts: vec![/* some prompts */],
..
}
})
```
Release Notes:
- N/A
Bennet Bo Fenner created
454adfa
freebsd: Improve nightly builds of zed-remote-server (#32255)
Follow-up to: https://github.com/zed-industries/zed/pull/29561 Don't create a release Don't upload artifact to workflow. Add freebsd support to upload-nightly Release Notes: - N/A
Peter Tripp created
edd4056
git: Pick which remote to fetch (#26897)
I don't want to fetch `--all` branch, we should can picker which remote to fetch. Release Notes: - Added the `git::FetchFrom` action to fetch from a single remote. --------- Co-authored-by: Cole Miller <cole@zed.dev>
CharlesChen0823 and Cole Miller created
a40ee74
Improve handling of `injection.combined` injections in `SyntaxSnapshot::layers_for_range` (#32145)
Closes #27596 The problem in this case was incorrect identification of which language (layer) contains the selection. Language layer selection incorrectly assumed that the deepest `SyntaxLayer` containing a range was the most specific. This worked for Markdown (base document + injected subtrees) but failed for PHP, where `injection.combined` injections are used to make HTML logically function as the base layer, despite being at a greater depth in the layer stack. This caused HTML to be incorrectly identified as the most specific language for PHP ranges. The solution is to track included sub-ranges for syntax layers and filter out layers that don't contain a sub-range covering the desired range. The top-level layer is never filtered to ensure gaps between sibling nodes always have a fallback language, as the top-level layer is likely more correct than the default language settings. Release Notes: - Fixed an issue in PHP where PHP language settings would be occasionally overridden by HTML language settings
Ben Kunkle created
2e883be
Add regression test for #11671 (#32250)
I can reproduce #11671 on current Nightly but not on `main`; it looks like https://github.com/zed-industries/zed/pull/32204 fixed it. So I'm adding a regression test and closing that issue. Closes #11671 Release Notes: - N/A
Richard Feldman created
6ea4d2b
agent: Fix MCP server handler subscription race condition (#32133)
Closes #32132 Release Notes: - Fixed MCP server handler subscription race condition causing tools to not load. --------- Co-authored-by: Bennet Bo Fenner <bennet@zed.dev> Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
Jonathan LEI , Bennet Bo Fenner , and Bennet Bo Fenner created