Commit log

b7c6ffa Fix panic when multi-cursor edit attempted in deleted hunk (#23633)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

ba16b4e assistant2: Show accept terms UI in thread empty state (#23630)

Click to expand commit body
<img
src="https://github.com/user-attachments/assets/cea93cfb-8a40-48c4-9d90-f1751c79603b"
width=400>



Release Notes:

- N/A

---------

Co-authored-by: Danilo <danilo@zed.dev>

Agus Zubiaga and Danilo created

ec5d02d Use `send` instead of `feed` on terminal events channel (#23631)

Click to expand commit body
Potentially fixes a bug where tasks are not marked as finished.

Release Notes:

- N/A

Michael Sloan created

d2c55cb Rework diff rendering to allow putting the cursor into deleted text, soft-wrapping and scrolling deleted text correctly (#22994)

Click to expand commit body
Closes #12553

* [x] Fix `diff_hunk_before`
* [x] Fix failure to show deleted text when expanding hunk w/ cursor on
second line of the hunk
* [x] Failure to expand diff hunk below the cursor.
* [x] Delete the whole file, and expand the diff. Backspace over the
deleted hunk, panic!
* [x] Go-to-line now counts the diff hunks, but it should not
* [x] backspace at the beginning of a deleted hunk deletes too much text
* [x] Indent guides are rendered incorrectly 
* [ ] Fix randomized multi buffer tests

Maybe:
* [ ] Buffer search should include deleted text (in vim mode it turns
out I use `/x` all the time to jump to the next x I can see).
* [ ] vim: should refuse to switch into insert mode if selection is
fully within a diff.
* [ ] vim `o` command when cursor is on last line of deleted hunk.
* [ ] vim `shift-o` on first line of deleted hunk moves cursor but
doesn't insert line
* [x] `enter` at end of diff hunk inserts a new line but doesn't move
cursor
* [x] (`shift-enter` at start of diff hunk does nothing)
* [ ] Inserting a line just before an expanded hunk collapses it

Release Notes:


- Improved diff rendering, allowing you to navigate with your cursor
inside of deleted text in diff hunks.

---------

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Cole <cole@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Co-authored-by: Michael <michael@zed.dev>
Co-authored-by: Agus <agus@zed.dev>
Co-authored-by: João <joao@zed.dev>

Max Brunsfeld , Conrad , Cole , Mikayla , Conrad Irwin , Michael , Agus , and João created

1fdae4b Update Rust crate tokio to v1.43.0 (#22882)

Click to expand commit body
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) | dependencies |
minor | `1.42.0` -> `1.43.0` |
| [tokio](https://tokio.rs)
([source](https://redirect.github.com/tokio-rs/tokio)) |
workspace.dependencies | minor | `1.42.0` -> `1.43.0` |

---

### Release Notes

<details>
<summary>tokio-rs/tokio (tokio)</summary>

###
[`v1.43.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.43.0):
Tokio v1.43.0

[Compare
Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.42.0...tokio-1.43.0)

### 1.43.0 (Jan 8th, 2025)

##### Added

-   net: add `UdpSocket::peek` methods ([#&#8203;7068])
-   net: add support for Haiku OS ([#&#8203;7042])
-   process: add `Command::into_std()` ([#&#8203;7014])
-   signal: add `SignalKind::info` on illumos ([#&#8203;6995])
-   signal: add support for realtime signals on illumos ([#&#8203;7029])

##### Fixed

- io: don't call `set_len` before initializing vector in `Blocking`
([#&#8203;7054])
- macros: suppress `clippy::needless_return` in `#[tokio::main]`
([#&#8203;6874])
-   runtime: fix thread parking on WebAssembly ([#&#8203;7041])

##### Changes

-   chore: use unsync loads for `unsync_load` ([#&#8203;7073])
-   io: use `Buf::put_bytes` in `Repeat` read impl ([#&#8203;7055])
-   task: drop the join waker of a task eagerly ([#&#8203;6986])

##### Changes to unstable APIs

- metrics: improve flexibility of H2Histogram Configuration
([#&#8203;6963])
-   taskdump: add accessor methods for backtrace ([#&#8203;6975])

##### Documented

- io: clarify `ReadBuf::uninit` allows initialized buffers as well
([#&#8203;7053])
- net: fix ambiguity in `TcpStream::try_write_vectored` docs
([#&#8203;7067])
-   runtime: fix `LocalRuntime` doc links ([#&#8203;7074])
- sync: extend documentation for `watch::Receiver::wait_for`
([#&#8203;7038])
-   sync: fix typos in `OnceCell` docs ([#&#8203;7047])

[#&#8203;6874]: https://redirect.github.com/tokio-rs/tokio/pull/6874

[#&#8203;6963]: https://redirect.github.com/tokio-rs/tokio/pull/6963

[#&#8203;6975]: https://redirect.github.com/tokio-rs/tokio/pull/6975

[#&#8203;6986]: https://redirect.github.com/tokio-rs/tokio/pull/6986

[#&#8203;6995]: https://redirect.github.com/tokio-rs/tokio/pull/6995

[#&#8203;7014]: https://redirect.github.com/tokio-rs/tokio/pull/7014

[#&#8203;7029]: https://redirect.github.com/tokio-rs/tokio/pull/7029

[#&#8203;7038]: https://redirect.github.com/tokio-rs/tokio/pull/7038

[#&#8203;7041]: https://redirect.github.com/tokio-rs/tokio/pull/7041

[#&#8203;7042]: https://redirect.github.com/tokio-rs/tokio/pull/7042

[#&#8203;7047]: https://redirect.github.com/tokio-rs/tokio/pull/7047

[#&#8203;7053]: https://redirect.github.com/tokio-rs/tokio/pull/7053

[#&#8203;7054]: https://redirect.github.com/tokio-rs/tokio/pull/7054

[#&#8203;7055]: https://redirect.github.com/tokio-rs/tokio/pull/7055

[#&#8203;7067]: https://redirect.github.com/tokio-rs/tokio/pull/7067

[#&#8203;7068]: https://redirect.github.com/tokio-rs/tokio/pull/7068

[#&#8203;7073]: https://redirect.github.com/tokio-rs/tokio/pull/7073

[#&#8203;7074]: https://redirect.github.com/tokio-rs/tokio/pull/7074

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 3pm on Wednesday" in timezone
America/New_York, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

Release Notes:

- N/A

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

renovate[bot] and renovate[bot] created

9d8d21a git: Disable "stage all" checkbox when no entries (#23608)

Click to expand commit body
Release Notes:

- N/A

Cole Miller created

40c18be Make editor autoscroll put cursor to the left of scrollbar not under (#23586)

Click to expand commit body
Closes #19706

Release Notes:

- Improved editor horizontal autoscroll to now place the cursor to the
left of the scrollbar rather than under it.

Michael Sloan created

15d041c Document elm-language-server not supporting linked_edits correctly (#23616)

Peter Tripp created

ed54af3 Support `yaml-language-server` as formatter without `lsp` settings (#23612)

Click to expand commit body
- Closes: https://github.com/zed-industries/zed/issues/20183

Peter Tripp created

d5c7e0b git_ui: Add keybinding for focusing the git panel (#23613)

Click to expand commit body
Adds a keybinding for opening/toggling focus to the git panel

Release Notes:

- N/A

Nate Butler created

77e9d01 task: Always use untruncated label if it is short (#23611)

Click to expand commit body
Also changed rust tasks to be less mouthful.

Release Notes:

- Shortened Rust task labels.
- Task modal will now use full task label when it does not require
truncation.

Piotr Osiewicz created

7c2b175 assistant2: Adjust empty state when there is no provider (#23609)

Click to expand commit body
This PR add a "Configure a Provider" button if the user gets to the
assistant panel with no provider configured. Then, upon configuring it,
they'll see a similar welcome message.

| No provider | Empty state |
|--------|--------|
| <img width="1233" alt="Screenshot 2025-01-24 at 12 25 48 PM"
src="https://github.com/user-attachments/assets/2f3c602f-9e46-4c79-95cd-4bb3717f68a3"
/> | <img width="1233" alt="Screenshot 2025-01-24 at 12 26 01 PM"
src="https://github.com/user-attachments/assets/a4a204dd-9531-45ab-89a2-f1d84f375a7b"
/> |

Release Notes:

- N/A

Danilo Leal created

fc3a871 assistant2: Adjust spacing and icons on the context picker (#23607)

Click to expand commit body
Just fine-tuning spacing, icon size and color, and ensure they're are
consistent throughout.

Release Notes:

- N/A

Danilo Leal created

8efed4c search: Move invalid UTF-8 errors to debug level (#23602)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

7b69c42 title_bar: Use an `IconButton` for the user menu (#23601)

Click to expand commit body
That's specifically when we're not rendering the user menu with an
Avatar. We were previously rendering a `ButtonLike` with unnecessary
flex styles there. Just a little fine-tune.

Release Notes:

- N/A

Danilo Leal created

ad63bdf assistant2: Disable the Submit button when missing requirements (#23598)

Click to expand commit body
This PR disables the Assistant 2 Submit button when either there is no
message written in the editor or there's no model selected. To guide the
user, there will be a tooltip displayed on top of the button to indicate
what to do.

Release Notes:

- N/A

Danilo Leal created

802d742 assistant: Adjust the ToS acceptance card design (#23599)

Click to expand commit body
Just fine-tuning the copywriting and design here.

| Before | After |
|--------|--------|
| <img width="1233" alt="Screenshot 2025-01-24 at 9 28 30 AM"
src="https://github.com/user-attachments/assets/ca91a985-8a20-4ece-b0e4-3a6779db2fda"
/> | <img width="1233" alt="Screenshot 2025-01-24 at 9 27 49 AM"
src="https://github.com/user-attachments/assets/edc9c2ef-4ae0-4caf-a496-9887748673c9"
/> |

Release Notes:

- N/A

Danilo Leal created

f2c2ed0 Allow the context menu to take an `icon_color` (#23600)

Click to expand commit body
Doing this to enable customization in the Assistant 2 context picker.

Release Notes:

- N/A

Danilo Leal created

813bbec Fix terminal memory leak by deduping alacritty events on background thread (#23593)

Click to expand commit body
Closes #23008

Release Notes:

- Fixed case where the terminal can leak memory when it produces events
at a faster rate than could be processed.

Michael Sloan created

dd8ee76 docs: context_servers json example (#23588)

Shivam Mishra created

c55cdd0 assistant2: Add thread persistence (#23582)

Click to expand commit body
This PR adds persistence for threads in Assistant2.

Threads are now persisted to an LMDB database.

Release Notes:

- N/A

Marshall Bowers created

fb63f61 search: Add heuristic for discarding matching of binary files (#23581)

Click to expand commit body
Fixes #23398 
Closes #23398

We'll bail on searches of files that we know are binary (thus even if we
were to find a match in them, they'd be thrown away by buffer loader).

Release Notes:

- Improved project search performance in worktrees with binary files

Piotr Osiewicz created

35ddb43 assistant_context_editor: Put `use`s in the right spot (#23579)

Click to expand commit body
This PR cleans up some `use` statements that weren't at the very top of
the module.

Release Notes:

- N/A

Marshall Bowers created

ec91a8d assistant2: Expose `ActiveThread::thread` via a getter (#23577)

Click to expand commit body
This PR exposes the `thread` file on the `ActiveThread` via a getter
rather than exposing the field directly.

Release Notes:

- N/A

Marshall Bowers created

52494f3 Update some editor methods to instead take immutable references (#23578)

Click to expand commit body
Makes the signatures more informative and can be more convenient as
multiple immutable borrows are allowed.

Release Notes:

- N/A

Michael Sloan created

9665336 Disable zeta predictions in assistant completion menu (#23573)

Click to expand commit body
We don't want the zeta predictions entry to show in the assistant
context editor when completing slash commands. Zeta will still make
suggestions in the rest of the context editor, like the other providers
do.

Release Notes:

- N/A

Agus Zubiaga created

06f0f07 Autoscroll when running `editor: swap selection ends` (#23575)

Click to expand commit body
Closes https://github.com/zed-industries/zed/issues/23512

Release Notes:

- Improved `editor: swap selection ends` by always scrolling the cursor
into view

Joseph T. Lyons created

d8c9fdd project: Revert project tree impl (again) (#23572)

Piotr Osiewicz created

2a2c332 docs: Document `ZED_DEVELOPMENT_AUTH` (#23571)

Click to expand commit body
This PR adds documentation for the `ZED_DEVELOPMENT_AUTH` environment
variable, in the hopes that it helps folks find it sooner.

Release Notes:

- N/A

Marshall Bowers created

76bf468 ui: Don't add an `on_click` handler for disabled `ListItem`s (#23569)

Click to expand commit body
This PR updates the `ListItem` component to not register an `on_click`
handler for `ListItem`s that are disabled.

When working on #23350 I noticed that even when the context menu entry
was disabled you could still click on the entry to fire the action.

Release Notes:

- Fixed some instances of disabled list items still registering clicks.

Marshall Bowers created

5ef5b75 Disable Copy Permalink context menu item when not in git repo (#23350)

Click to expand commit body
Closes #13979

Please review this approach to hide the permalink, or alternatively to
disable it instead?

Release Notes:

- The Copy Permalink menu item is now disabled when not in a Git
repository.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>

Swiftaff and Marshall Bowers created

0ef53bf vim: Add support for ctrl-g (#23562)

Click to expand commit body
Co-Authored-By: Jon Walstedt <jon@walstedt.se>

Closes #22094

Release Notes:

- vim: Added support for ctrl-g

Co-authored-by: Jon Walstedt <jon@walstedt.se>

Conrad Irwin and Jon Walstedt created

f38d0ff ollama: Set default max_tokens for llama3.3 (#23558)

Peter Tripp created

3dee32c inline completion: Add syntax highlighting for edit prediction (#23361)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

---------

Co-authored-by: Antonio Scandurra <me@as-cii.com>
Co-authored-by: Agus <agus@zed.dev>

Bennet Bo Fenner , Antonio Scandurra , and Agus created

75ae4da Remove unwrap in GitTraversal::synchronize_statuses (#23555)

Click to expand commit body
Release Notes:

- Fixed a potential panic in handling of Git statuses.

Co-authored-by: Marshall <marshall@zed.dev>

Cole Miller and Marshall created

1ac7da8 terraform: Bump to v0.1.2 (#23546)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/22268

Peter Tripp created

469bfa7 scheme: Bump to v0.0.2 (#23545)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/18728
- https://github.com/zed-industries/zed/pull/20206

Peter Tripp created

fb332a0 git_panel: Toggle stage all when clicking changes label (#23548)

Click to expand commit body
When clicking the checkbox label fire the toggle action.

At first I wasn't sure this is what we wanted, but after looking at a
few existing implementations of checkboxes with labels it seems like
this is reasonably standard.

Eventually this piece of UI will be updated to a CheckboxWithLabel, but
for now it is custom due to some specific style requirements.

Release Notes:

- N/A

Nate Butler created

9e6b100 project: Bring back language servers in detached worktrees (#23530)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

bb937b6 zig: Bump to v0.3.3 (#23547)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/22609

Peter Tripp created

ea1a6a6 php: Bump to v0.2.4 (#23543)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/23532
- https://github.com/zed-industries/zed/pull/22268

Peter Tripp created

63c5141 purescript: Bump to v0.1.0 (#23544)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/15181
- https://github.com/zed-industries/zed/pull/16955
- https://github.com/zed-industries/zed/pull/22609

Peter Tripp created

26453a0 csharp: Bump to v0.1.1 (#23539)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/22936

Peter Tripp created

a328c81 html: Bump to v0.1.5 (#23542)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/20752
- https://github.com/zed-industries/zed/pull/22268

Peter Tripp created

9d6d98e haskell: Bump to v0.1.3 (#23541)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/22609

Peter Tripp created

7d7db4d elixir: Bump to v0.1.4 (#23540)

Click to expand commit body
Includes:
- https://github.com/zed-industries/zed/pull/22055
- https://github.com/zed-industries/zed/pull/22268

Peter Tripp created

79683eb php: Add nowdoc language injection (#23532)

Click to expand commit body
We already have heredoc injection support, so this just extends it to also cover
[nowdoc](https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc).

Ollie Beckwith created

0cb4175 llm: Sample ~10% of staff members inputs/outputs to LLM (#23537)

Click to expand commit body
Release Notes:

- N/A

Thorsten Ball created

95c045a Fix LSP violation when dismissing server notifications (#23531)

Click to expand commit body
Part of https://github.com/zed-industries/zed/issues/22606
Closes https://github.com/zed-industries/zed/issues/23509

When a user sees an odd notification from the language server like

<img width="508" alt="image"
src="https://github.com/user-attachments/assets/6f5ef1aa-0f09-4705-a02a-aaf81dd8620c"
/>

they usually dismiss that.

Zed uses channels to wait and handle user interactions with such
notifications, and, due to `?`, sends back
```json
{"jsonrpc":"2.0","id":1,"error":{"message":"receiving from an empty and closed channel"}}
```

which is not spec-compliant:
https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#window_showMessageRequest

> Response:
>
> * result: the selected
[MessageActionItem](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#messageActionItem)
| null if none got selected.
> * error: code and message set in case an exception happens during
showing a message.

Unfortunately, vtsls (and, potentially, others) crash if receive such
non-compliant requests, and do not get back.

After the fix, the message is correct:
```json
{"jsonrpc":"2.0","id":1,"result":null}
```


Release Notes:

- Fixed vtsls crashing on notification dismiss

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>

Kirill Bulatov and Piotr Osiewicz created

f9e354e theme: Add version control colors (#23529)

Click to expand commit body
This PR adds version control-specific theme tokens to the them to allow
styling entries in the git ui and elsewhere.

Release Notes:

- N/A

Nate Butler created