Commit log

65934ae migrator: In-memory migration and improved UX (#24621)

Click to expand commit body
This PR adds:

- Support for deprecated keymap and settings (In-memory migration)
- Migration prompt only shown in `settings.json` / `keymap.json`.

Release Notes:

- The migration banner will only appear in `settings.json` and
`keymap.json` if you have deprecated settings or keybindings, allowing
you to migrate them to work with the new version on Zed.

smit created

498bb51 Require `alt-tab` for `AcceptEditPrediction` when `tab` inserting whitespace is desired (#24705)

Click to expand commit body
Moves tab whitespace insertion logic out of `AcceptEditPrediction`
handler.

`edit_prediction_requires_modifier` context will now be true when on a
line with leading whitespace, so that `alt-tab` is used to accept
predictions in this case. This way leading indentation can be typed when
edit predictions are visible

Release Notes:

- N/A

Co-authored-by: Ben <ben@zed.dev>
Co-authored-by: Joao <joao@zed.dev>

Michael Sloan , Ben , and Joao created

df9b0f3 Merge branch 'main' into v0.173.x

Joseph T. Lyons created

2e7a89c edit predictions: Improve copywriting (#24689)

Danilo Leal created

f5fd3d9 Fix project diff focus (#24691)

Click to expand commit body
Release Notes:

- N/A

Conrad Irwin created

9a9fdce Fixes for accept edit popovers (#24703)

Click to expand commit body
Follow-up to #24700

Release Notes:

- N/A

---------

Co-authored-by: danilo-leal <daniloleal09@gmail.com>
Co-authored-by: agu-z <hi@aguz.me>

Max Brunsfeld , danilo-leal , and agu-z created

cc931a8 theme: Add support for setting light/dark icon themes (#24702)

Click to expand commit body
This PR adds support for configuring both a light and dark icon theme in
`settings.json`.

In addition to accepting just an icon theme name, the `icon_theme` field
now also accepts an object in the following form:

```jsonc
{
  "icon_theme": {
    "mode": "system",
    "light": "Zed (Default)",
    "dark": "Zed (Default)"
  }
}
```

Both `light` and `dark` are required, and indicate which icon theme
should be used when the system is in light mode and dark mode,
respectively.

The `mode` field is optional and indicates which icon theme should be
used:
- `"system"` - Use the icon theme that corresponds to the system's
appearance.
- `"light"` - Use the icon theme indicated by the `light` field.
- `"dark"` - Use the icon theme indicated by the `dark` field.

Closes https://github.com/zed-industries/zed/issues/24695.

Release Notes:

- Added support for configuring both a light and dark icon theme and
switching between them based on system preference.

Marshall Bowers created

148547e Rework edit prediction preview mode (#24700)

Click to expand commit body
Don't animate the cursor when previewing jumps.
Instead, display the jump popover with a line that resembles a cursor,
indicating the jump destination. If the jump destination is outside of
the view port, there is an extra step in which `tab` scrolls the
viewport to reveal the jump destination.

Release Notes:

- N/A

---------

Co-authored-by: danilo-leal <daniloleal09@gmail.com>
Co-authored-by: agu-z <hi@aguz.me>

Max Brunsfeld , danilo-leal , and agu-z created

8095e60 Merge branch 'main' into v0.173.x

Joseph T. Lyons created

5293f57 Add a script that sets up a trusted MITM proxy (#24698)

Click to expand commit body
In an effort to squash bugs like:
https://github.com/zed-industries/zed/issues/19620, and improve
confidence on PRs like:
https://github.com/zed-industries/zed/pull/24656, I created this little
test script using `mitmproxy` to simulate the situation.

Unfortunately, I don't see any issues with our current usage of the
local certificate store using this script. But I'd like to have it as a
base to build off of.

Release Notes:

- N/A

Mikayla Maki created

73b32a2 Fix `editor::GoToDiagnostics` cycle (#24697)

Click to expand commit body
Re-lands https://github.com/zed-industries/zed/pull/24446 with a more
appropriate fix


https://github.com/user-attachments/assets/45f665f0-473a-49bd-b013-b9d1bdb902bd

After activating 2nd diagnostics group, `find_map` code for next
diagnostics did not skip the previous group for the same place.

This time, instead of fiddling with the diagnostics group comparison,
the code splits the diagnostics by search place, looks up the active
group (if any) in both split parts, and selects the entries after the
group elements.

Release Notes:

- Fixed `editor::GoToDiagnostics` action stuck when multiple diagnostics
groups belong to the same place

Kirill Bulatov created

7da913c collab: Update user email and name when signing in (#24694)

Click to expand commit body
This PR updates the `GET /user` endpoint to update the user's email and
name from the provided GitHub profile information on sign-in.

Currently, these fields were only set when the user was first created.

Release Notes:

- N/A

Marshall Bowers created

a2592a3 Clean up edit predictions settings (#24692)

Click to expand commit body
This PR does some clean up for the edit predictions settings:

- Removed `editor.show_edit_predictions_in_menu`
- Renamed `edit_predictions.inline_preview` to `edit_predictions.mode`

Release Notes:

- N/A

---------

Co-authored-by: Agus Zubiaga <agus@zed.dev>

Marshall Bowers and Agus Zubiaga created

636253d Prefer names over github logins when filling co-authors (#24693)

Click to expand commit body
Follow-up of https://github.com/zed-industries/zed/pull/24575

Release Notes:

- N/A

Kirill Bulatov created

e851abd migrator: Do some cleanup (#24687)

Click to expand commit body
This PR does some clean up of the `migrator` crate:

- Remove `.unwrap`s
- Don't suppress `rustfmt`

Release Notes:

- N/A

Marshall Bowers created

b3814ce Fix "Project Diff Opened" event name (#24686)

Click to expand commit body
Release Notes:

- N/A

Joseph T. Lyons created

2d71733 ui: Update Label component (#24653)

Click to expand commit body
- Standardize style methods
- Convert label story to a component preview
- update component preview styles  

Release Notes:

- N/A

Nate Butler created

2a2dbdf Merge branch 'main' into v0.173.x

Joseph T. Lyons created

aab3e04 inline_completion_button: Add menu option to toggle "Eager Preview"s for edit predictions (#24685)

Click to expand commit body
This PR adds a menu option to the edit prediction menu to toggle the
"Eager Preview" behavior:

<img width="252" alt="Screenshot 2025-02-11 at 2 44 52 PM"
src="https://github.com/user-attachments/assets/232e879b-3c11-4edd-a549-f284e2bca391"
/>

Release Notes:

- N/A

Marshall Bowers created

12163c9 Add `Editor &&` to accept edit contexts in vim keymap (#24684)

Click to expand commit body
Without this, these default vim bindings were taking precedence over
user keybindings

Release Notes:

- N/A

Michael Sloan created

477cec0 Add more view tracking (#24683)

Click to expand commit body
This should fix a panic in `Window::current_view()`

Release Notes:

- N/A

Mikayla Maki created

0a14679 vim: Prevent around word operations from selecting indentation (#24635)

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

Changes:
Added check for first word on line

Tested `v/c/d/y aw`. Matches standard neovim.

|initial|old|new|
|---|---|---|

|![image](https://github.com/user-attachments/assets/725b74e6-3aa0-40dc-9fd2-4d2b593e9926)|![image](https://github.com/user-attachments/assets/eeebd267-b4c6-4ea6-bb9a-fb913614754c)|![image](https://github.com/user-attachments/assets/fb695e54-b4c2-44a6-a588-909c1fd415e0)



Release Notes:

- vim: Prevent around word operations from selecting indentation

5brian created

7378ab9 Correctly handle `[[` autoclosing in Markdown (#24662)

Peter Tripp created

3a3b7b5 Merge branch 'main' into v0.173.x

Joseph T. Lyons created

759ea0e Touch up stale hunks fix (#24669)

Click to expand commit body
Release Notes:

- N/A

Co-authored-by: Max <max@zed.dev>

Cole Miller and Max created

7c00eec edit predictions: Fix popover hint not scrolling horizontally (#24602)

Click to expand commit body
Release Notes:

- N/A

João Marcos created

eaab7da zeta: Add ability to change predict edits URL via environment variable (#24668)

Click to expand commit body
This PR adds the ability to change the predict edits URL using the
`ZED_PREDICT_EDITS_URL` environment variable.

This allows for easily pointing Zed to a development version of the
Cloudflare Worker.

Release Notes:

- N/A

Marshall Bowers created

14d9788 edit predictions: Don't animate cursor when jumping in eager mode without LSP completions (#24664)

Click to expand commit body
We should only do this in "holding modifier" mode OR when there's a
language server completions menu.

Release Notes:

- N/A

Agus Zubiaga created

b395bea file_icons: Add Stylelint file icon associations (#24605)

Click to expand commit body
This PR adds file associations for stylelint files.

This is how it looks like in Zed (the icon doesn't exist):
![default javascript file icon is shown for
stylelint.config.js](https://github.com/user-attachments/assets/a873d7fc-1b8a-4a9c-8e92-1be56d5b01b1)

In a dev version of an icon theme it looks like this (icon sourced from:
https://github.com/vscode-icons/vscode-icons/blob/master/icons/file_type_stylelint.svg
):
![stylelint file icon is shown for
stylelint.config.js](https://github.com/user-attachments/assets/ddbb068d-7986-43de-94f8-9c844cb6b96f)

Release Notes:

- Icon themes: Added Stylelint file icon associations.

---------

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

Cameron Radmore and Marshall Bowers created

6e7416e Fix stale hunks after commit (#24663)

Click to expand commit body
Fixes a regression introduced in #24475.

Release Notes:

- N/A

Cole Miller created

bbea3a2 editor: Fix crash caused by `editor::SelectPrevious` (#24660)

Click to expand commit body
Closes #24345

Release Notes:

- Fixed a crash caused by calling `editor::SelectPrevious` twice in a
row.

Co-authored-by: conrad <conrad@zed.dev>

smit and conrad created

7950368 file_icons: Add missing React file icon associations (#24659)

Click to expand commit body
The `.mjsx`, `.cjsx`, `.mtsx`, and `.ctsx` file extensions are also
designed to contain JSX code.

Release Notes:

- Added file icon associations for more React files (`.mjsx`, `.cjsx`,
`.mtsx`, `.ctsx`).

Twilight created

7fe6943 Add command to copy current file name (#22174)

Click to expand commit body
Closes #21967

Add actions `CopyFileName` and `CopyFileNameWithoutExtension` to be used in the command palette.

Release Notes:

- Added commands `editor: copy file name` and `editor: copy file name without extensions`.

ANKDDEV created

8fa85c4 edit prediction: Try to fix panic in `Buffer::preview_edits` (#24654)

Click to expand commit body
We've seen a few crashes in `SyntaxSnapshot::reparse_with_ranges` during
`Buffer::preview_edits`, where an offset conversion fails because it is
out of range.
We are not sure how exactly this is happening. 
Our theory is that the syntax snapshot is using an outdated state when
edits happen in the meantime (while interpolating). This is an attempt
to see if it helps with the panics, hopefully we can revisit this when
we have a better understanding of the issue.


Co-Authored-by: Antonio <antonio@zed.dev>

Release Notes:

- N/A

Co-authored-by: Antonio <antonio@zed.dev>

Bennet Bo Fenner and Antonio created

ca3b780 Merge branch 'main' into v0.173.x

Joseph T. Lyons created

7b45901 gpui: Update asset paths for more examples (#24646)

Click to expand commit body
This PR updates the asset paths used in more GPUI examples such that
they work when run from the repository root or from within
`crates/gpui`.

Release Notes:

- N/A

Marshall Bowers created

22e2b8e edit predictions: Preview jumps by animating cursor to target (#24604)

Click to expand commit body
https://github.com/user-attachments/assets/977d08fb-a2b1-4826-9d95-8f35c6cb9f13




Release Notes:

- N/A

---------

Co-authored-by: Danilo <danilo@zed.dev>
Co-authored-by: Smit <smit@zed.dev>
Co-authored-by: Max <max@zed.dev>

Agus Zubiaga , Danilo , Smit , and Max created

5778e1e theme: Fix Svelte file icon (#24650)

Click to expand commit body
This PR fixes the file icon used for Svelte files in the default icon
theme, as I used the wrong icon name in #24644.

Release Notes:

- N/A

Marshall Bowers created

c61f2df file_icons: Use a separate icon key for Markdown files (#24648)

Click to expand commit body
This PR updates the file icon mappings such that Markdown (`.md`,
`.markdown`) files map to the `markdown` key.

Release Notes:

- Icon themes: Added the ability to change the file icon for Markdown
(`.md`, `.markdown`) files.

Marshall Bowers created

04d65cb gpui: Make `image` example work regardless of how it is run (#24645)

Click to expand commit body
This PR updates the GPUI `image` example such that it works when run in
the following ways:

- `cargo run -p gpui --example image` from the repository root
- `cargo run --example image` from within `crates/gpui`

Release Notes:

- N/A

Marshall Bowers created

6a40a40 file_icons: Use a separate icon key for Svelte files (#24644)

Click to expand commit body
This PR updates the file icon mappings such that Svelte (`.svelte`)
files map to the `svelte` key.

Release Notes:

- Icon themes: Added the ability to change the file icon for Svelte
(`.svelte`) files.

Marshall Bowers created

c8c4ec2 docs: Fix vim `Subword` and `Push` example snippet (#24641)

Click to expand commit body
All other vim examples are objects in Keymap file, where these two
examples are stated as Keymap file itself.

PR fixes this confusion.  

Release Notes:

- N/A

smit created

64ae509 chore: Remove `settings` dependency on `migrator` (#24642)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

7f4957c Remove non-existent icon IndicatorX (#24636)

Click to expand commit body
There is no file indicator_x.svg in the assets directory.

09:49:05 [ERROR] could not find asset at path "icons/indicator_x.svg"

![image](https://github.com/user-attachments/assets/e9cc5ae3-4eb3-4e1e-b012-43ac7297c0a7)

Release Notes:

- N/A

zfx created

8c34905 edit prediction: Fix `zeta: Rate completions` action not working when using keybinding (#24569)

Click to expand commit body
Release Notes:

- N/A

Bennet Bo Fenner created

a1d4bd9 Make `alt-l` the default linux/windows binding for AcceptEditPrediction (#24630)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

9e178f1 Revert "Make `ctrl-l` the default vim binding for AcceptEditPrediction (#24599) (#24614)

Click to expand commit body
Didn't realize that the base keymap binds this to `editor::SelectLine`.

This reverts commit c5fe5f11396e0eeac765880eb6a17afbfbd53f78.

Release Notes:

- N/A

Michael Sloan created

236f51c vim: Update `vi{` (#24601)

Click to expand commit body
Small fix: Following up on
https://github.com/zed-industries/zed/pull/24518 where i missed `vi{`.

Matching neovim(tree-sitter), `vi{` should not have the newline selected
(Now `vi{d`/`vi{c` can match `di{`/`ci{`).

Also moved the cursor to the start.

|prev|new|neovim|
|---|---|---|

|![image](https://github.com/user-attachments/assets/0311fbe5-df2e-4feb-977d-de33a3af7fdc)|![image](https://github.com/user-attachments/assets/a940c6ba-268b-4401-8c43-38ca17848542)|![image](https://github.com/user-attachments/assets/dab2c47d-660c-4ae3-bf79-635265222cc1)|

Release Notes:

- N/A

5brian created

37785a5 vim: :set support (#24209)

Click to expand commit body
Closes #21147 

Release Notes:

- vim: First version of `:set` with support for `[no]wrap`,
`[no]number`, `[no]relativenumber`

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>

Max Bucknell and Conrad Irwin created

2e7bb11 docs: Improve StyLua Lua formatter suggested settings (#24144)

Peter Tripp created