Commit Graph
35839 Commits
Author SHA1 Message Date
Cole MillerandPiotr Osiewicz 2d0bd7cd04 Add more verbosity for panic inside summaries_for_anchors_with_payloads (#50940)
We are seeing the timestamp comparison fail in an unexpected way, e.g.
https://zed-dev.sentry.io/issues/7293482758/events/c7f7eab3f8f2463f879d4889a80d623e,
where it seems like `text::Anchor::is_max` should be returning true but
it apparently isn't. Add some more information when this panic happens
to understand what's going on.

Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <24362066+osiewicz@users.noreply.github.com>
2026-03-06 15:03:21 +00:00
Bennet Bo FennerandBen Brandt f69ab1d04e agent: Fail faster in case streaming tool call fails (#50834)
If a streaming tool call (e.g. edit file) returns an error during
streaming, we would wait until we received the whole input.

Release Notes:

- N/A

---------

Co-authored-by: Ben Brandt <benjamin.j.brandt@gmail.com>
2026-03-06 14:39:08 +00:00
João Soares db6b47ab18 agent_ui: Fix agent panel focus stealing from modals (#50511)
Closes #49336

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI

checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

### Video:

https://drive.google.com/file/d/1qAwAoDr4wr8cs1dosvLocU-a4pngJZvr/view?usp=sharing

Release Notes:

- Fixed agent panel stealing keyboard focus from modals during workspace
restoration
2026-03-06 14:34:11 +00:00
Bennet Bo Fenner 3fe3776f52 agent: Update old_text docs for StreamingEditFileTool (#50921)
In the old edit agent tool we encouraged the LLM to respond with whole
lines, which we did not do in the new edit file tool.

Release Notes:

- N/A
2026-03-06 15:27:18 +01:00
Smit Barmase 84daec5d03 agent_ui: Add safeguards for deep link prompt injections (#50936)
- Show a warning asking users to review pre-filled prompts from external
links before sending.
- Strip control characters and bidi control characters from pre-filled
prompts.
- Collapse 3+ consecutive newlines in pre-filled prompts to prevent
newline padding attacks.
- API changes make it impossible to auto-submit pre-filled prompts from
external sources.

Release Notes:

- N/A
2026-03-06 19:45:03 +05:30
Xin Zhao 09b4140b80 lsp: Use correct LSP adapter for completion labels in remote development (#50697)
Closes #47917

Currently, during remote development, Zed uses the first available local
LSP adapter to handle all label computing. This isn't ideal and causes
bugs because different adapters may expect different label formats. By
leveraging the `all_capable_for_proto_request` method, we can now
retrieve the specific language server name and use it as a key to find
the correct LSP adapter for label population. Even if this lookup fails,
we can still fall back to the first adapter, so this PR should provide
more accurate label population than before.

This addresses the root cause of #47917, which stems from two main
issues. For example, in remote Python development, the `basedpyright`
adapter might incorrectly handle labels even when the remote server is
actually `ty`. The completion items returned by `ty` are slightly
different from `basedpyright`: `ty` stores labels in
`labelDetails.detail`, while basedpyright uses
`labelDetails.description`. By matching the correct adapter, we ensure
labels are populated properly for completion items.
```json
// RPC message returned by `ty`, label is in `labelDetails.detail`
{
  ...
  "labelDetails": { "detail": " (import pathlib)" },
  ...
}

// RPC message returned by `basedpyright`, label is in `labelDetails.description`
{
  ...
  "labelDetails": { "description": "pathlib" },
  ...
}
```
Additionally, adapters registered via `register_available_lsp_adapter`
are lazy-loaded into the `LanguageRegistry` (which is the case for `ty`
before). In remote scenarios, the adapter might be loaded on the remote
server but not on the local host, making it hard to find in
`lsp_adapters`. This is partially resolved in #50662, and combined with
this PR, we can fully address #47917.

There is still more to do, however. In some cases, we still can't find
the correct local LSP adapter if the local host lacks the registry that
the remote server has; this typically happens when the adapter is
registered via `register_available_lsp_adapter`. I've opened a feature
discussion #49178 to track this. If it's decided that this needs further
refinement, I'm happy to continue working on it.


Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed missing labels for `ty` completion items in remote development.
2026-03-06 14:11:16 +00:00
Cameron McloughlinandConrad Irwin 33e5301946 gpui: Add property_test macro (#50935)
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2026-03-06 14:03:45 +00:00
MostlyK 66de3d9c00 repl: Treat WSL as a separate kernel type from SSH remote (#50721)
Split WslRemote out of the remote_kernels bucket in the kernel picker,
giving it its own "WSL Kernels" section. Use the distro name and
kernelspec display name for WSL entries instead of the generic "WSL"
string.

In python_env_kernel_specifications, detect WSL projects via
RemoteConnectionOptions and return WslRemote instead of SshRemote. Stop
marking WSL worktrees as remote so global kernel specs load.

Fix ark kernel stdout pollution by building the wsl.exe bash command
with a quoted cd and inline env assignment, so exec replaces the shell
and doesn't echo input back.

Closes #50459 

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-06 07:28:10 -06:00
Ben Brandt 5db8d6d1bc agent: Only use AgentSessionInfo in history (#50933)
Previously we required AgentSessionInfo all over the place, which meant
there were lots of unnecessary fake ones created all over the place.

Made the methods and functions only take the data they need so we only
use these in history contexts now, as intended.

Release Notes:

- N/A
2026-03-06 13:13:23 +00:00
Danilo Leal 8a38d2d7b4 agent_ui: Adjust empty state for the panel for v2 (#50932)
Making the message editor take all the available space, and improving
the loading state for external agents a bit.

Release Notes:

- N/A
2026-03-06 10:04:39 -03:00
Danilo Leal e95b5c3c71 sidebar: Add some refinements (#50923)
- Make clicking on the project header collapse/expand the group as
opposed to activating the workspace
- Added the "threads" label close to the sidebar toggle button
- Made the open folder icon button open the file finder directly as
opposed to the recent projects popover

Release Notes:

- N/A
2026-03-06 09:20:54 -03:00
Danilo Leal 61e7032e54 agent_ui: Adjust panel toolbar design for v2 (#50927)
Adding some adjustments so the toolbar looks more like the designs we've
been working on. All that changes here are only valid for the v2 feature
flag. Haven't changed anything for today's production version.

Release Notes:

- N/A
2026-03-06 09:20:29 -03:00
Daniel Strobusch 77fa02889e Ensure consistent newline behavior in auto-height editors with JetBrains keymap (#47595)
Add an explicit `Editor && mode == auto_height` context block. This
ensures that `Shift+Enter` and `Ctrl+Enter` correctly insert a newline
at the cursor position in editors like the AI Agent Panel,
preventing them from inheriting conflicting overrides (e.g., JetBrains
mapping `Shift+Enter` to `editor::NewlineBelow`).

Closes #47269

Release Notes:

- Fixed an issue where `Shift+Enter` would insert a newline at the end
of the text instead of the cursor position in the Agent Panel when using
certain keymaps.
2026-03-06 11:34:58 +00:00
Ben Brandt 2457e27437 eval: Add eval_cli crate (#50922)
Very much wip

Release Notes:

- N/A
2026-03-06 11:12:38 +00:00
Jakub Konka 5289bea46e nix: Coerce rel path to cargo wrapper script into abs path (#50919)
This allows you to now re-use our Zed flake in different side projects
with cargo wrapper script having its path correctly resolved.

Say you have this dir structure:

```
$HOME/dev/zed
$HOME/dev/something
```

Then this now works:

```
$ cd $HOME/dev/something
$ nix develop ../zed
$ cargo version
cargo 1.93.0 (083ac5135 2025-12-15)
```

Release Notes:

- N/A
2026-03-06 11:53:14 +01:00
claire 49ef20585d terminal: Fix drag-and-drop in vertical terminal panels (#49825)
Closes #49800

Adds `handle_drop` to Item & ItemHandle, which allows an active item in
a pane to consume drop events before the pane does.

Release Notes:

- terminal: Fix drag-and-drop not working in vertical terminal panels
2026-03-06 11:37:14 +02:00
João Soares e3d0a35b73 Fix formatter: "auto" to skip language servers that can't format (#50661)
Closes #50631

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed `formatter: "auto"` silently doing nothing when the first
language server for a language doesn't support formatting (e.g., Dependi
before Tombi for
TOML).
2026-03-06 09:31:33 +00:00
Smit Barmase d2952be519 zed: Fix shared agent thread links not opening (#50915)
Release Notes:

- Fixed an issue where shared agent thread URLs would not open.
2026-03-06 09:31:18 +00:00
Karthik Nishanth e9ffef0bfa editor: Hide hover links when mouse cursor is not visible (#50424)
When I am in the middle of editing, pressing Ctrl would
counter-intuitively highlight links even when the mouse cursor is
hidden. This change considers the state of the mouse cursor before
painting links on hover.

Before: Modifier pressed, cursor hidden, link visible

<img width="506" height="518" alt="image"
src="https://github.com/user-attachments/assets/82a59e83-e3cb-490f-b292-148686ec569d"
/>

After: Modifier pressed, cursor hidden (red dot indicates current cursor
position)

<img width="408" height="298" alt="image"
src="https://github.com/user-attachments/assets/c19ed83c-4778-4890-97b9-5155cdcf658b"
/>

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed spurious link highlighting when mouse cursor is hidden

Fixes #50776
2026-03-06 07:53:24 +00:00
Xin Zhao a70c295658 python: Fix conda environment not auto-activated in remote terminal (#50895)
Closes #50619

In the conda activation script building procedure, Zed currently
performs a file check for the conda executable on the client side. When
in remote development, this check always fails because the file exists
on the remote host, not the local machine. Since `pet` already handles
existence checks, removing this redundant check allows the activation to
proceed. It is also better to let any potential issues (like
permissions) show up in the terminal rather than silently skipping the
activation.

This addresses the root cause for remote development, which is different
from the approach in #50715 that focuses on shell hooks.

**The video recording**


https://github.com/user-attachments/assets/62967351-e3c5-4814-aec4-b2332940e7e3

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Fixed conda environment not auto-activating in the terminal during
remote development sessions.
2026-03-06 07:51:30 +00:00
Mikayla MakiandEric Holk 7040484057 Fix sidebar selections (#50900)
Release Notes:

- N/A

---------

Co-authored-by: Eric Holk <eric@zed.dev>
2026-03-06 06:51:26 +00:00
Mikayla Maki a0ba509838 Fix provisional thread title (#50905)
Release Notes:

- N/A
2026-03-06 06:45:50 +00:00
Conrad Irwin 9acb32fd1f Linux: Handle device lost with wgpu (#50898)
Release Notes:

- Linux: Handle GPU device loss gracefully
2026-03-05 22:59:48 -07:00
Richard Feldman 3b3ffc022e Add GPT-5.4 and GPT-5.4-pro BYOK models (#50858)
Add GPT-5.4 and GPT-5.4-pro as Bring Your Own Key model options for the
OpenAI provider.

**GPT-5.4** (`gpt-5.4`):
- 1,050,000 token context window, 128K max output
- Supports chat completions, images, parallel tool calls
- Default reasoning effort: none

**GPT-5.4-pro** (`gpt-5.4-pro`):
- 1,050,000 token context window, 128K max output
- Responses API only (no chat completions)
- Default reasoning effort: medium (supports medium/high/xhigh)

Also fixes context window sizes for GPT-5 mini and GPT-5 nano (272K →
400K) to match current OpenAI docs.

Closes AI-78

Release Notes:

- Added GPT-5.4 and GPT-5.4-pro as available models when using your own
OpenAI API key.
2026-03-05 23:40:03 -05:00
Max Brunsfeld ab824a0b9d Use excerpt coordinates consistently in parse_zeta_model_output (#50894)
Fixes a bug introduced in
https://github.com/zed-industries/zed/pull/50850, where we used
incorrect coordinates for the editable range.

Release Notes:

- N/A
2026-03-05 18:59:58 -08:00
John Tur ca5027c4d6 Fix OpenGL initialization on Intel HD 4000 (#50891)
I think we might just get it working this time

Release Notes:

- N/A
2026-03-06 02:06:27 +00:00
61d969665b zeta: Add variable edit format (#50850)
Release Notes:

- N/A

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Oleksiy Syvokon <oleksiy.syvokon@gmail.com>
Co-authored-by: Ben Kunkle <ben@zed.dev>
2026-03-05 16:23:36 -08:00
Ben Kunkle da9d5481e5 zeta2: Don't remove redundant excerpts on the client (#50886)
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-03-05 19:04:49 -05:00
Mikayla Maki a1d8c52a1b Separate the sidebar click targets (#50885)
Release Notes:

- N/A
2026-03-05 23:27:44 +00:00
John Tur 41cfb82b1a Fix crash in start_display_link (#50875)
Fixes ZED-5G8

If `DisplayLink::new` fails, `frame_requests` is dropped . It is not
valid to destroy a DispatchSource that is not `resume()`d. So, ensure we
call `resume()` before there's a chance for anything to fail.

Release Notes:

- Fixed a crash that could occur on macOS when changing monitor
configurations
2026-03-05 21:54:20 +00:00
Ben Kunkle c5f3a1d367 ep: Indicate active experiment (#50870)
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-03-05 21:19:49 +00:00
Ben Brandt 90ae70874e agent: Gate agent registry refresh behind Disable AI setting (#50868)
Make sure we don't download this file if disable_ai is enabled

Release Notes:

- N/A
2026-03-05 21:13:24 +00:00
Ben Brandt 0d90751655 agent_ui: Always show smaller subagent preview (#50864)
Remove the conditional fullscreen path for subagent tool calls so
expanded content consistently renders as a capped preview with the
overlay and fixed height. Also add a pointer cursor to the maximize
control to clarify clickability.

Release Notes:

- N/A
2026-03-05 20:59:48 +00:00
Ben Brandt a8caf07684 agent_ui: Remove feature upsell banners from agent registry (#50862)
These aren't built in anymore!

Release Notes:

- N/A
2026-03-05 20:48:07 +00:00
Katie Geer f05d756913 agent: Add telemetry events for subagents (#50849)
Adds five telemetry events to track subagent lifecycle and user
interactions:

- **Subagent Started** — fires on creation or resumption, includes
parent session, subagent session, depth, and whether it was resumed
- **Subagent Completed** — fires when `SpawnAgentTool` finishes,
includes subagent session and status (completed/error)
- **Subagent Toggled** — fires when the user expands or collapses a
subagent card
- **Subagent Stopped** — fires when the user clicks Stop on a running
subagent
- **Subagent Maximized** — fires when the user clicks Maximize to
navigate into a subagent
 
Release Notes:
 - N/A
2026-03-05 12:46:53 -08:00
Ben KunkleandAgus 6c914add26 ep: Capture example as part of settled events (#50847)
Closes #ISSUE

Before you mark this PR as ready for review, make sure that you have:
- [ ] Added a solid test coverage and/or screenshots from doing manual
testing
- [ ] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A *or* Added/Fixed/Improved ...

Co-authored-by: Agus <agus@zed.dev>
2026-03-05 15:38:34 -05:00
9afeb4e11d Implement new Multi Agent UI (#50534)
Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A

---------

Co-authored-by: Eric <eric@zed.dev>
Co-authored-by: cameron <cameron.studdstreet@gmail.com>
Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
Co-authored-by: John Tur <john-tur@outlook.com>
2026-03-05 20:22:28 +00:00
Marshall Bowers 0e5b4e1351 language_models: Defer fetching models for the Zed provider until fully signed-in (#50857)
This PR updates the model-fetching behavior for the Zed provider to wait
until the user is fully signed-in before we attempt to fetch the models.

We now subscribe to the `UserStore` and listen for the
`PrivateUserInfoUpdated` event. If we receive that event and the user is
not currently signed out, then we should be all set to fetch the models.

Closes CLO-424.

Release Notes:

- N/A
2026-03-05 15:06:45 -05:00
Richard Feldman 1f918fb482 Remove agent git worktree feature flag (#50778)
Remove the separate `AgentGitWorktreesFeatureFlag` and replace all its
checks with the existing `AgentV2FeatureFlag`. The git worktree
functionality is now gated behind the same flag as agent v2.

Changes:
- Removed `AgentGitWorktreesFeatureFlag` from `feature_flags`
- Replaced all `has_flag::<AgentGitWorktreesFeatureFlag>()` checks with
`has_flag::<AgentV2FeatureFlag>()`
- Simplified toolbar condition that was redundantly checking both flags
- Updated tests accordingly

Closes AI-73

Release Notes:

- N/A
2026-03-05 15:04:56 -05:00
João Soares 94154aae6f picker: Prevent clicking non-selectable entries from confirming selection (#50705)
Closes #50627

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [ ] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)


### Videos:
Before:

https://drive.google.com/file/d/1PahGhfx-wq9cyNqqMlctb9Np7M1Meo71/view?usp=sharing
After:

https://drive.google.com/file/d/135W6MQ9hKBurw5Z7YpHQQhoQwkh1NvUb/view?usp=sharing


Release Notes:

- Fixed clicking on non-selectable picker entries (e.g. section headers)
confirming the currently selected item.
2026-03-05 18:59:01 +00:00
Oleksiy Syvokon 8e5356c9d6 ep: Fix infinite loop of EP requests in some cases (#50833)
When a diagnostic-triggered prediction returns no edits, don't fall back
to requesting another diagnostic prediction. This was causing an
infinite loop that burned through the API rate limit until hitting 429
errors.


Release Notes:

- N/A
2026-03-05 18:17:45 +00:00
Oleksiy Syvokon 27a9b60e47 ep: Fix race condition resulting in duplicate requests (#50830)
When multiple `queue_prediction_refresh` calls land in the same
synchronous frame, all spawned tasks would read the same throttle state
and each send an identical cloud request.

Now the second task would see that the first request has been sent and
would quit.

Release Notes:

- N/A
2026-03-05 17:20:04 +02:00
Tom Houlé 95adddf120 language_models: Avoid debug formatting in Copilot Chat, OpenAI errors (#50824)
See these screenshots:

<img width="832" height="564" alt="image"
src="https://github.com/user-attachments/assets/64d04fe7-4be7-4fbf-8536-b4b7a2ea62ed"
/>

<img width="836" height="1094" alt="image"
src="https://github.com/user-attachments/assets/247b215c-8e7e-4eff-8e08-b1b9ee8894b9"
/>

Release Notes:

- Fixed some error messages in OpenAI/Copilot Chat conversations that
were using the Debug representation.
2026-03-05 16:00:57 +01:00
Kunall Banerjee 0be32ba939 markdown_preview: Enable parser options individually (#50440)
Closes #50170.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- Enable parser options individually to avoid rendering issues
2026-03-05 14:00:08 +00:00
Bennet Bo Fenner 35720710f2 agent: Add debug logging to StreamingEditFileTool (#50826)
Add some debug logging to the streaming edit file tool, to make it
easier to debug errors.

Can be enabled with 
```
"log": {
  "agent": "debug",
}
```

Release Notes:

- N/A
2026-03-05 13:48:44 +00:00
Gaauwe Rombouts 493611a720 docs: Fix typo in consent banner hide check (#50823)
Fixes a typo in the consent banner check on docs pages, which makes the
opt-out logic work correctly.

Before you mark this PR as ready for review, make sure that you have:
- [x] Added a solid test coverage and/or screenshots from doing manual
testing
- [x] Done a self-review taking into account security and performance
aspects
- [x] Aligned any UI changes with the [UI
checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)

Release Notes:

- N/A
2026-03-05 14:22:23 +01:00
Bennet Bo Fenner 38e7f41c94 agent: Fix deadlock when LLM API returns an error while streaming tool input (#50813)
Nightly only since no tool is using streaming on Preview.

Tools that used streaming could deadlock when the upstream LLM API
stream exited early without ever sending a ToolUse with `input_complete`
set to `true`. This is now fixes by manually dropping the tool input
channels.

Release Notes:

- N/A
2026-03-05 11:19:47 +00:00
Cameron Mcloughlin 3fb377b779 git: Side by side spacer mouse cursor (#50814) 2026-03-05 11:15:26 +00:00
Oleksiy Syvokon 783a52624a ep: Add V0304SeedNoEdits prompt format (#50809)
Release Notes:

- N/A
2026-03-05 10:54:59 +00:00
Bennet Bo Fenner 1a8005f24a editor: Respect read_only in newline_below (#50804)
Turns out `Editor::newline_below` was not respecting the `read_only`
flag because it uses buffer.edit. `Editor::newline` and
`Editor::newline_above` behaved correctly because they used
`editor.edit` which ignores edits if `read_only` is true.

Added an early return if the editor is read only, also added it to
newline/newline_above for clarity.

Release Notes:

- Fixed an issue where newlines could be inserted into read-only editors
2026-03-05 10:07:52 +00:00