Commit Graph
34865 Commits
Author SHA1 Message Date
Marshall Bowers a22092c3bc settings_content: Remove unused methods from AgentSettingsContent (#48526)
This PR removes some unused methods from the `AgentSettingsContent`
type.

Release Notes:

- N/A
2026-02-05 21:15:10 +00:00
0xADB 0e29766682 Update cosmic-text to v0.17 to fix font ligatures on Linux (#48504)
Closes https://github.com/zed-industries/zed/issues/12176

rebased https://github.com/zed-industries/zed/pull/48161

Release Notes:

- Updated text rendering dependency to fix and improve font ligature
support
2026-02-05 20:28:31 +00:00
David Baldwin 46017f9612 Add tab switcher mode similar to vim/helix buffer picker (#47079)
Implements the enhancement requested in #24655 - enables tab switcher to
show all open files across all panes deduped. It's called "follow mode"
because whichever is the active pane is ALWAYS where the file, terminal,
etc will be opened from the tab switcher (not married to this mode
name).

Adds `follow_mode: true` option to `tab_switcher::ToggleAll`. When
enabled:

- **Shows all tabs across panes** - Same file in multiple panes appears
once (deduped by path)
- **Opens in active pane** - Selecting a file opens it in current pane,
creating independent editor instances
- **Moves terminals** - Non-file items (terminals, multibuffers) move to
current pane instead of duplicating
- **Preview & restore** - Navigate with arrow keys / tab to preview,
Escape restores original state

Intended for vim/helix `:buffers` command workflow while respecting
Zed's tab-based paradigm.

### Usage

```json
["tab_switcher::ToggleAll", {"follow_mode": true}]
```

### Implementation

**Preview pattern:** Clone item handles during navigation, clean up on
dismiss
- **Files**: Preview with cloned handle, confirm closes preview and
opens fresh (independent editors)
- **Terminals**: Preview with cloned handle, confirm removes from source
(moves to current pane)

**Key technical details:**
- Ignore workspace events during follow mode to prevent list re-sorting
from preview operations
- Preserve preview tab status on confirm
- Close operations remove from all panes in follow mode
- Remove from source before activating to ensure correct focus
management

### Test Coverage

21 tests total (14 new follow mode tests):
- File behavior: deduplication, independent editors, preview status
preservation, close behavior
- Non-file behavior: terminal movement, focus management, single pane
scenarios
- General: MRU stability, restore on dismiss

### Release Notes

- Added `follow_mode` option to `tab_switcher::ToggleAll` for vim-style
buffer list showing all deduped open files across panes opening in
active pane

## Q&A

**Q: Why not tie this to vim mode?**

A: This feature is different enough from vim/helix buffer behavior that
I opted not to couple them. It is an approximation using Zed's tab
switcher/picker and would take architectural changes to implement real
vim/helix buffers. Additionally, both follow mode and regular tab
switcher mode are useful window/tab management workflows that vim or
non-vim users may want regardless of their editing mode preference.

**Q: How to use this?**

A: For a vim/helix-like workflow:

1. **Bind the follow mode tab switcher** - Add to your keymap:
   ```json
   {
     "context": "Workspace",
     "bindings": {
       "cmd-i": ["tab_switcher::ToggleAll", {"follow_mode": true}]
     }
   }
   ```

2. **Hide the tab bar (optional)** - Add to settings:
   ```json
   {
     "tab_bar": {
       "show": false
     }
   }
   ```

3. **Move tabs to other pane on close (optional)** - Add to your keymap
to join tabs into next pane when closing:
   ```json
   {
     "context": "Pane",
     "bindings": {
       "cmd-w": "pane::JoinIntoNext"
     }
   }
   ```

This makes closing a tab behave more like vim's split closure - items
move to the adjacent pane instead of being closed.

If you find that you'd rather have the tab bar visible, there's a pretty
good chance you don't need/want this feature. Vim/helix don't have
visible tab bars, so this feature is primarily for users who want that
sort of experience where buffers are not tied to a specific split/pane
and closing a split does not impact the available buffers.

## Future Work

A few additional features could make for more complete vim/helix-like
buffer workflow:

**`:bd` (buffer delete) improvements:**
- Should close the buffer from ALL panes, not just the current one
- Current implementation: `workspace::CloseActiveItem` only closes in
current pane
- Needed: New action like `workspace::CloseActiveItemAcrossPanes` and/or
update vim command mapping

**`:q` (quit) improvements:**
- Should close the split/pane while preserving its tabs
- Behavior: merge tabs into next pane (like `pane::JoinIntoNext`),
unless it's the last pane
- Last pane: close the pane and all its items
- Current implementation: `workspace::CloseActiveItem` closes active
item, not the pane
- Needed: New action or pane closure logic that moves tabs before
closing

These are complementary to this feature and can be done as separate PRs.

Release Notes:

- Add `tab_switcher::ToggleUnique` to allow a more vim-like tab
switching experience.
2026-02-05 20:25:20 +00:00
Lukas WirthandCole Miller 74746aa974 multi_buffer: Optimize a bunch of things (#48519)
Release Notes:

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

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2026-02-05 20:10:02 +00:00
Marshall Bowers 7dcff21dc9 anthropic: Update types for adaptive thinking (#48517)
This PR updates the Anthropic types with support for [adaptive
thinking](https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking).

We're not actually using adaptive thinking yet.

Release Notes:

- N/A
2026-02-05 19:55:42 +00:00
Richard Feldman 65da2c2c6a Use AgentTool::NAME const instead of name() method and hardcoded strings (#48506)
This PR removes the `fn name()` default method from the `AgentTool`
trait (which just returned `Self::NAME`) and replaces all call sites
with direct use of the `NAME` associated constant. This lets us use it
as a single source of truth in macros that want to access it at compile
time.

This PR also replaces hardcoded tool name string literals throughout the
codebase with the corresponding `NAME` constants, so tool name
references stay in sync if a tool is renamed.

Intentionally not changed:

- **Display strings** like `"Thinking"` and `"Subagent"` (user-facing UI
labels)
- **Serde attributes** like `#[serde(rename = "thinking")]` (wire
format)
- **The test assertion** `assert_eq!(SubagentTool::NAME, "subagent")`
(replacing the literal would make it tautological)
- **MCP server names** like `"mcp:srv:terminal"` (not tool identifiers)

Release Notes:

- N/A
2026-02-05 19:28:28 +00:00
Richard Feldman 24b6cbf575 Add Claude Opus 4.6 and 1M context window model variants (#48508)
<img width="588" height="485" alt="Screenshot 2026-02-05 at 1 29 10 PM"
src="https://github.com/user-attachments/assets/f3d36c8b-b371-4226-af60-bdc2c6b34009"
/>
<img width="586" height="468" alt="Screenshot 2026-02-05 at 1 30 15 PM"
src="https://github.com/user-attachments/assets/878e91ad-948c-4b35-a37b-f5a8db7e0b3f"
/>


This adds Claude Opus 4.6 as a new Anthropic model, along with 1M
context window variants for both Opus 4.6 and Sonnet 4.5.

## Opus 4.6

Adds `ClaudeOpus4_6` and `ClaudeOpus4_6Thinking` with the same
properties as other Claude 4+ models (200k context, 8192 max output
tokens, fine-grained tool streaming beta header).

## 1M context variants

Adds 1M context window variants for Sonnet 4.5 and Opus 4.6. These are
identical to their base models except:
- Context window is 1,000,000 tokens instead of 200,000
- They send the `context-1m-2025-08-07` beta header

Release Notes:

- Added Claude Opus 4.6
- Now Claude Opus 4.6 and Sonnet 4.5 BYOK models support variations that
have context windows of 1 million tokens (and have different pricing)
2026-02-05 18:50:04 +00:00
c47430debf helix: Fix line select with empty first line (#48026)
Release Notes:

- Fixed `HelixSelectLine` with an empty first line and a pre-existing
selection.

---------

Co-authored-by: Jakub Konka <kubkon@jakubkonka.com>
Co-authored-by: Lena Falk <lena@zed.dev>
2026-02-05 18:57:23 +01:00
Kirill Bulatov 8bb69dcb14 Properly discard tokens on language server stop (#48490)
Follow-up of https://github.com/zed-industries/zed/pull/46356

Release Notes:

- N/A
2026-02-05 16:07:16 +00:00
Lukas Wirth 723f683dda text: Actually short circuit anchored_edits_since_in_range (#48486)
When the version is the same we used to still seek through the
underlying fragment sumtree despite having nothing to return. This has a
lot of unnecessary overhead.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-05 15:57:11 +00:00
Kirill Bulatov 4389ebb6f4 Follow-up semantic token fixes (#48485)
Follow-up of https://github.com/zed-industries/zed/pull/46356

* better selection in highlights panel to show the color of the active
item
* no `DiffbaselessAnchor` entity to cause flickering and highlighting
issues
* react on theme and theme settings change and refresh semantic tokens
* do not eagerly flicker when refreshing the tokens
* do not show semantic tokens in the editor menu for non-applicable
buffers

Release Notes:

- N/A
2026-02-05 15:06:02 +00:00
Lukas WirthandCole Miller de17358fb4 language: Use TreeMap for language::BufferSnapshot::diagnostics (#48482)
Otherwise cloning the snapshot is more expensive than it should be.

Release Notes:

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

Co-authored-by: Cole Miller <cole@zed.dev>
2026-02-05 14:40:02 +00:00
Oleksiy Syvokon 044dca12b7 ep: Use programmatic scores as a signal for repair (#48478)
Also, lots of updates to the repair prompt and the ability to keep
previous predictions without having to rewrite them.

Release Notes:

- N/A
2026-02-05 14:07:04 +00:00
Danilo Leal 8c047d9469 workspace: Remove layout shift from multibuffer toolbar (#48472)
The icons in the far left of the multibuffer toolbar were shifting a bit
to the side when toggling the buffer search, so this PR fixes that. I'm
also removing the labeled button for the expand/collapse all excerpts;
relying only on the icon-button version of it, given it's simpler and
similarly clear.


https://github.com/user-attachments/assets/8ee44c9f-3082-4160-ac77-a3cf489b318a

Release Notes:

- N/A
2026-02-05 12:57:08 +00:00
Oleksiy Syvokon 389f66591c ep: Store cursor position in global coordinates (#48469)
This also fixes the isolated whitespace change metric, which is not
takes cursor position into account (it's okay to insert a newline if it
has a cursor on it)

Release Notes:

- N/A
2026-02-05 12:31:12 +00:00
Oleksiy Syvokon a3b36ae9a4 ep: Fix trailing newlines parsing (#48473)
Release Notes:

- N/A
2026-02-05 14:29:27 +02:00
Kunall Banerjee e5579cfc91 agent_settings: Fix Bedrock model catalog URL (#48382)
The previous URL pointed to the model access page which no longer exists
(not a 404, tho). The model catalog page is the current location for
selecting and requesting access to Bedrock models.

| Before | After |
|--------|--------|
| <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 50
13"
src="https://github.com/user-attachments/assets/f513e7c9-aa70-439a-afd0-ef8177ada463"
/> | <img width="1732" height="1125" alt="Screenshot 2026-02-04 at 12 52
11"
src="https://github.com/user-attachments/assets/6609215e-1bbb-4ed1-b57d-422ed7893498"
/> |

Release Notes:

- Fixed Bedrock model catalog URL in Agent Panel settings
2026-02-05 07:20:16 -05:00
Finn EversandZed Zippy a8c3c1a6a5 extension_api: Add digest to GithubReleaseAsset (#48413)
Round 2 of #46269 with conflicts properly resolved.

This came up a few times across various extensions. With us about to
ship a new API version soon, it might be worth to add.

Release Notes:

- N/A

---------

Co-authored-by: Zed Zippy <234243425+zed-zippy[bot]@users.noreply.github.com>
2026-02-05 12:13:02 +00:00
Finn Evers ee41463038 ci: Move more jobs to Namespace runners (#48228)
This moves some more of our CI jobs over to xtask and gh-workflow. This
primarily originated from the current GitHub actions outage to move
these actions over to Namespace runners. However, while I was at it I
decided to move these over to gh_workflow, as we benefit from sharing
more stuff across these files and less hacking around in YAML-files
directly.

Release Notes:

- N/A
2026-02-05 12:06:01 +00:00
Piotr OsiewiczandSmit Barmase dedf390b75 ci: Use package name for contents of changed_pkgs (#48459)
Helps with #48413

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>

Release Notes:

- N/A

Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-02-05 12:59:50 +01:00
Gaauwe Rombouts 6e5e6cf8a5 languages: Remove duplicate keywords in JS syntax highlighting (#48460)
Fixes an issue where syntax highlighting would be incorrect in certain
cases for JS, because of duplicate keyword definitions.

Release Notes:

- Fixed issue where certain keywords were incorrectly highlighted in JS
files
2026-02-05 12:23:39 +01:00
Marco Mihai CondracheandAnthony Eid 7694ea2687 gpui: Detect thermal state to help the system (#45638)
Apple recommends checking the system’s thermal state and adjusting
behavior to reduce resource usage, giving the system a chance to cool
down. While this API is macOS-specific, the same idea likely applies to
other platforms - those are intentionally out of scope for this PR.

As a first step, we cap the frame rate at 60 fps when the system reports
a critical thermal state. In that situation, pushing higher frame rates
doesn’t buy us anything and just adds more heat. This also gives us a
hook for future improvements, like reducing other work when the system
is under sustained thermal pressure.

Ref:
https://developer.apple.com/library/archive/documentation/Performance/Conceptual/power_efficiency_guidelines_osx/RespondToThermalStateChanges.html

Release Notes:

- Zed now reduces resource usage when the system is under high thermal
stress

---------

Signed-off-by: Marco Mihai Condrache <52580954+marcocondrache@users.noreply.github.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-05 10:44:47 +00:00
Xiaobo LiuandAnthony Eid 92f8ae8635 debugger: Wrap TaskContext in Arc to reduce cloning overhead (#47087)
Release Notes:

- N/A

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-05 10:37:39 +00:00
Iago BermúdezandAnthony Eid 1fe80040b1 debugger: Fix breakpoint color only updating when mouse moves (#46427)
The other day I was testing the debugging feature and I noticed a
**very** small visual bug. When you click on the breakpoint circle to
set a breakpoint, the breakpoint color remains in the wrong state until
the mouse moves.

After debugging for a while, I noticed that the issue was that the
PhantomVariableIndicator variable attribute
`collides_with_existing_breakpoint` was not being updated until the
mouse moved. With the following change, the attribute is updated when
the user clicks the breakpoint, toggleling tha attribute.

### Prior behaviour:

https://github.com/user-attachments/assets/3dfa8e25-e970-49a3-8e87-0ecadabb3a3c

As you can see in the video, prior to this change, the breakpoint would
only change to the correct color when the mouse moved.
 
### New behaviour

https://github.com/user-attachments/assets/356e84dc-42e5-4440-afab-0fbc4b3a1f0a

With this new change, the breakpoint updates right after the user
clicks, no need to move the mouse.

### Disclaimers

- I'm new to this codebase, so any feedback is extremely welcomed! If
you know of a better place where this could be handled, let me know and
I'll explore further.


https://github.com/user-attachments/assets/12d4b9df-e5d7-4955-b58d-dd63563c5c1b

Release Notes:

- N/A

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-05 09:59:03 +00:00
Rocky Shi 87dff2a1db JetBrains keymap: Add escape key binding to cancel in auto_height mode (#45306)
Closes [#45299](https://github.com/zed-industries/zed/issues/45299)

Release Notes:

- Fix Escape key does not cancel/dismiss inline assist with Jetbrains
keymap

Recording:


https://github.com/user-attachments/assets/766a9954-2d32-4f43-b81d-acba1cb8e133
2026-02-05 09:36:40 +00:00
Lukas Wirth 9cd2343432 editor: Put more syntax walking features on the background (#48450)
Currently we always compute breadcrumbs and sticky headers on every
editor paint which is not cheap to do especially in bigger files, moving
this off to be computed on event handling where they change and then
caching them can save serveral milliseconds per render in bigger files.

This also puts matching brackets refreshing and document highlights on a
background task, as this tends to block the main task for prolonged time
as well.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-05 09:31:11 +00:00
Zachiah SawyerandAnthony Eid 81562a30c7 Make middle click not mousedown close tabs (#44916)
Closes #44856

This PR also adds an `on_aux_click` interface to the div element that follows MDM standard https://developer.mozilla.org/en-US/docs/Web/API/Element/auxclick_event

Release Notes:

- fix bug where mouse down middle click would close tab instead of full middle click

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-05 09:21:47 +00:00
Matthew ChisolmandAnthony Eid 053a8fed22 Handle soft wrap modes when computing wrap width (#46422)
Partially closes #44748 

Release Notes:

- Fixed the git side panel to respect soft wrap settings

---------

Co-authored-by: Anthony Eid <anthony@zed.dev>
2026-02-05 08:22:43 +00:00
Lukas Wirth 1dca30e3a1 languages: Remove unnecessary unresolvedReference semantic token rule (#48448)
This prevents ast based highlighting in unconfigured code

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-05 08:19:36 +00:00
86f307ef9a project panel: Collapse All improvements (#47328)
Thanks to @jackTabsCode for the original commit that I based my work off
of.

See: #27703

Release Notes:

- Fixed clicking "Collapse All" from context menu on a project root
collapsing all project roots instead of that one.
- Added new `project panel: collapse selected entry and children` action
that collapses the selected directory and all its subdirectories.
- Added "Collapse All" option to the context menu for all directories,
not just project roots.

---------

Co-authored-by: Jack T <jack@jackt.space>
Co-authored-by: Smit Barmase <heysmitbarmase@gmail.com>
2026-02-05 13:14:05 +05:30
Smit Barmase 12091a9f2c project_panel: Fix collapse_all_entries collapsing single worktree root completely (#48443)
For: https://github.com/zed-industries/zed/pull/47328

Release Notes:

- Fixed an issue where selecting "Collapse All" on the root directory or
triggering the collapse all action would sometimes collapse the entire
root instead of keeping it expanded when there's a single worktree.
2026-02-05 11:43:08 +05:30
Smit Barmase 23e8f13e9c agent_ui: Fix missing TerminalSelection match arm in mention_set (#48445)
Fix broken main.

Release Notes:

- N/A
2026-02-05 11:34:58 +05:30
Rocky Shi 592d21898d Parse and render markdown mention links from pasted text (#45426)
Closes [#ISSUE](https://github.com/zed-industries/zed/issues/45408)

Release Notes:

- Fixed mention links from pasted text.

Recording:


https://github.com/user-attachments/assets/e0d55562-c9a4-4798-be41-af8b8cd1f5d7
2026-02-05 05:16:44 +00:00
Cole Miller 804caba60c git: Add toolbar buttons for SplittableEditor (#48323)
Release Notes:

- N/A
2026-02-05 04:15:41 +00:00
Richard Feldman 323680f6fe Fix shell quote bypass in terminal permission system (#48436)
## Problem

Zed's terminal permission system validates commands using regex patterns
against string representations of parsed commands. The
`SimpleCommand::to_string()` method in brush-parser preserves the raw
lexical form including shell quotes, causing pattern matching to fail on
obfuscated commands.

For example, all of these are semantically equivalent to `rm -rf /` in
POSIX shells, but produced different strings from `to_string()` that
bypassed the hardcoded deny pattern `rm\s+(-[rf]+\s+)*/\s*$`:

| Input | `extract_commands()` returned | Matched deny pattern? |
|---|---|---|
| `rm -rf /` | `"rm -rf /"` | ✅ Yes |
| `rm -rf '/'` | `"rm -rf '/'"` | ❌ No |
| `'rm' -rf /` | `"'rm' -rf /"` | ❌ No |
| `r'm' -rf /` | `"r'm' -rf /"` | ❌ No |
| `rm -r'f' /` | `"rm -r'f' /"` | ❌ No |
| `rm -rf \/` | `"rm -rf \\/"` | ❌ No |

Both hardcoded deny patterns (Phase 2, which operates on extracted
sub-commands) and user-configured `always_deny` patterns were affected.

## Fix

Replace the `simple_command.to_string()` call in
`extract_commands_from_simple_command` with manual construction that:

1. Iterates the command name (`word_or_name`) and word arguments from
the suffix
2. Normalizes each word by parsing it into `WordPiece`s via
`brush_parser::word::parse`
3. Reconstructs the semantic (unquoted) value from each piece:
   - `Text` — used as-is
- `SingleQuotedText` — used as-is (brush-parser already strips the
wrapping quotes)
- `EscapeSequence` — leading `\` stripped to produce the unescaped
character
- `AnsiCQuotedText` — used as-is (brush-parser already evaluates
`$'...'`)
- `DoubleQuotedSequence` / `GettextDoubleQuotedSequence` — inner pieces
recursively normalized
   - `TildePrefix` — preserved as `~` + suffix
- `ParameterExpansion` / `CommandSubstitution` /
`BackquotedCommandSubstitution` / `ArithmeticExpression` — original
source text preserved so patterns like `\$HOME` and `\${HOME}` continue
to match
4. Joins normalized words with spaces

Falls back to the raw `word.value` if word parsing fails.

## Cross-shell safety

The normalization operates on POSIX-parsed ASTs (brush-parser uses POSIX
grammar), so it applies POSIX quoting rules. For non-POSIX shells
(Nushell, PowerShell, Xonsh, Elvish, etc.) where quoting semantics
differ, any mismatch results in false positives (overly cautious
denials), never false negatives. This is the correct error direction for
a security feature. When brush-parser fails to parse a non-POSIX
command, `extract_commands` returns `None` and the existing fallback
(raw-string matching with `allow_enabled=false`) handles it.

(No release notes because granular tool permissions are still
feautre-flagged.)

Release Notes:

- N/A
2026-02-05 04:13:58 +00:00
Cole Miller 0dd09b6097 git: Render hunk gutter highlights for the side-by-side diff (#48433)
Relanding #48321 

Release Notes:

- N/A
2026-02-05 03:08:26 +00:00
Matt Miller 49c777779a Add stacked and split diff icons (#48427)
N/A
2026-02-05 00:57:21 +00:00
2b5386b438 Fix vim increment/decrement on Markdown list markers (#47978)
`find_target()` failed to match numbers followed by a dot and a
non-digit (e.g. `1. item`), because the dot unconditionally reset
the scan state, discarding the number. Additionally, numbers at the
start of non-first lines were missed because the backward scan
stopped on the preceding newline and the forward scan immediately
broke on it.

Closes #47761

Release Notes:

- Fixed vim increment (`ctrl-a`) and decrement (`ctrl-x`) not working on Markdown ordered list markers like `1.`, `2.`, etc.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: dino <dinojoaocosta@gmail.com>
2026-02-04 23:52:43 +00:00
Katie GeerandClaude Opus 4.5 7d4dd8735c docs: Add missing AI features (Dec. 2025) (#48418)
- Update AI docs with missing features we shipped in December 2025
- Apply new brand voice to new docs

Release Notes:

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 15:50:59 -08:00
Dino 18a0103112 vim: Add $ and = as subword motion boundaries (#48276)
These changes update subword motions in order to also take `$` and `=`
into consideration as stopping punctuation, improving the subword
motions for certain languages where `$` and `=` are commonly used, like
PHP, for variables and assignments.

Closes #48267 

Release Notes:

- Improved Vim's subword motions to stop at `$` and `=` characters
2026-02-04 23:38:00 +00:00
Conrad Irwin ed3e18de6f Reduce rewrapping when agent diffs are present (#48423)
Before this change any agent diff caused us to recompute the entire
buffer's wraps, because we didn't handle the base text of diffs
changing.

Now, thanks to anchors, we can do that.

Release Notes:

- Fixed the editor rewrapping like crazy when agent edits were present
2026-02-04 23:36:23 +00:00
Conrad IrwinandCole Miller cfb4cefb37 Fix multibuffer to not mark everything as edited when buffer diffs don't change (#48424)
Co-authored-by: Cole Miller <cole@zed.dev>

Release Notes:

- N/A

Co-authored-by: Cole Miller <cole@zed.dev>
2026-02-04 23:35:41 +00:00
Danilo Leal f4b715b787 docs: Fix rules description in AI overview (#48420)
Release Notes:

- N/A
2026-02-04 23:04:27 +00:00
Cameron McloughlinandCole Miller bae3eda75c git: Shader for checkerboard pattern for side-by-side diff (#48417)
Adds `checkerboard` to `Background`, and use it for the side-by-side
diff.
Note that, since the blockmap can contain multiple `Spacer`s without any
gaps
in between, we ensure that the checkerboard pattern always shows an even
integer number of squares per line, so there are no obvious
discontinuities
in the pattern when this happens.

<img width="590" height="300" alt="image"
src="https://github.com/user-attachments/assets/e8f75f90-b230-4078-bce0-cb3c15613fe7"
/>


Release Notes:

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

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2026-02-04 23:00:56 +00:00
Kenan Hasanaliyev 307f537ab3 Remove cmpl- prefix validation from Mercury feedback (#48410)
Release Notes:

- Removes unnecessary prefix validation from Inception API's returned
request ID.
2026-02-04 17:56:26 -05:00
Ben Kunkle 4cb85917c5 Differentiate between explicit rejection and ignored in ep acceptance tracking (#48409)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2026-02-04 17:54:11 -05:00
Shuhei KadowakiandClaude Opus 4.5 6a71a60a12 lsp: Add schema support for LSP settings field (#48332)
This extends the LSP settings schema system to also provide autocomplete
for the `settings` field (used for `workspace/configuration` responses),
in addition to the existing `initialization_options` support (#).

Changes:
- Add `settings_schema` method to `LspAdapter` trait and
`CachedLspAdapter`
- Update schema URL paths to be more explicit:
  - `lsp/{adapter}/initialization_options` for init options schema
  - `lsp/{adapter}/settings` for settings schema
- Add schema resolution logic for the new settings path
- Update tests to verify both schema references

Release Notes:

- Added autocomplete support for the `settings` field in LSP
configuration, complementing the existing `initialization_options`
autocomplete.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 23:45:52 +01:00
Cole Miller dd6f327c99 Revert "git: Render hunk gutter highlights for side-by-side diff (#48321)" (#48416)
This reverts commit c390dda824.

Release Notes:

- N/A
2026-02-04 22:44:05 +00:00
Piotr Osiewicz f0dfb443d6 ci: Trigger tests on Cargo.toml and Cargo.lock changes (#48412)
Finn found out the hard way that the new cool tech does not quite work
at times. Back to the drawing board we go (at least partially).

Closes #ISSUE

Release Notes:

- N/A
2026-02-04 22:33:24 +00:00
Marco Mihai Condrache 0056bbe386 editor: Use tabs bitmask when syncing (#48366)
Release Notes:

- N/A
2026-02-04 22:21:57 +00:00