Commit log

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

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

cf9661a Improve extension extraction documentation (#24590)

Click to expand commit body
- Add .gitignore
- Update extension.toml URL
- Script cleanup of Cargo.toml workspace lines

Peter Tripp created

c5fe5f1 Make `ctrl-l` the default vim binding for AcceptEditPrediction (#24599)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

8f75fe2 Add staged status information to diff hunks (#24475)

Click to expand commit body
Release Notes:

- Render unstaged hunks in the project diff editor with a slashed
background

---------

Co-authored-by: maxbrunsfeld <max@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>

Cole Miller , maxbrunsfeld , and Max Brunsfeld created

a9de9e3 Remove alt-tab / alt-enter binds in vim keymap, as they are in base (#24598)

Click to expand commit body
Was unnecessary to include these in #24596 as they will be available
from the base keymap.

Release Notes:

- N/A

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

Michael Sloan and Conrad created

4c881b6 Use `editor::AcceptEditPrediction` in vim keymap (#24596)

Click to expand commit body
* Overrides the action handler to switch to insert mode after jumps.

* Returns `vim::Tab` to its behavior from before #24418

Release Notes:

- N/A

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

Michael Sloan and Conrad created

c89ad65 edit predictions: Show user if current project is open source (#24587)

Click to expand commit body
Release Notes:

- N/A

---------

Co-authored-by: João Marcos <marcospb19@hotmail.com>

Danilo Leal and João Marcos created

3d9f709 Use last keybind (highest precedence) for `AcceptEditPrediction` display (#24595)

Click to expand commit body
Fix of PR #24582

Release Notes:

- N/A

Michael Sloan created

7fe331f Remove old keymap comments about AcceptEditPrediction modifier changes (#24592)

Click to expand commit body
This was fixed in #24442

Release Notes:

- N/A

Michael Sloan created

c1f162a collab: Fix project sharing between Windows and Unix (#23680)

Click to expand commit body
Closes #14258

Windows user(host) sharing a project to a guest(using macOS), and host
follows guest:


https://github.com/user-attachments/assets/ba306b6b-23f7-48b1-8ba8-fdc5992d8f00

macOS user(host) sharing a project to a guest(using Windows), and host
follows guest:



https://github.com/user-attachments/assets/c5ee5e78-870d-49e5-907d-8565977a01ae

macOS user edits files in a windows project through collab:



https://github.com/user-attachments/assets/581057cf-e7df-4e56-a0ce-ced74339906a





Release Notes:

- N/A

张小白 created

929c5e7 Fix some visual bugs w/ edit predictions (#24591)

Click to expand commit body
* correct the size of key binding icons
* avoid spurious modifier in 'jump to edit' popover when already
previewing
* fix height of the edit preview popover

Release Notes:

- N/A

Co-authored-by: agu-z <hi@aguz.me>

Max Brunsfeld and agu-z created

dab9c41 Fix formatters not running in order (#24584)

Click to expand commit body
Previously, if multiple formatters were specified for the same language,
they would be run in parallel on the state of the file, and then all
edits would be applied. This lead to incorrect output with many unwanted
artifacts.
This PR refactors the formatting code to clean it up, and ensure results
from previous formatters are passed in to subsequent formatters.

Closes #15544

Release Notes:

- Fixed an issue where when running multiple formatters they would be
ran in parallel rather than sequentially, leading to unwanted artifacts
and incorrect output.

---------

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

Ben Kunkle and Conrad created

1f288f7 edit predictions: Fix predictions bar disappearing while loading (#24582)

Click to expand commit body
Release Notes:

- N/A

---------

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

Agus Zubiaga and Max created

89e051d Update extension extraction documentation (2025-02-10) (#24585)

Click to expand commit body
Include lessons learned from PHP Extension extraction.

Peter Tripp created

62bb339 Migate PHP Extension to zed-extensions/php (#24583)

Click to expand commit body
PHP Extension has been extracted to it's own repository available here:
- https://github.com/zed-extensions/php

Peter Tripp created

0af048a edit predictions: Cache settings across renders (#24581)

Click to expand commit body
We were reading edit prediction settings too often, causing frames to be
dropped. We'll now cache them and update them from
`update_visible_inline_completion`.

Release Notes:

- N/A

Agus Zubiaga created

973cb91 Fix fill-co-authors, and collaborator cursors (#24575)

Click to expand commit body
Co-authored-by: mikayla-maki <mikayla.c.maki@gmail.com>

Release Notes:

- N/A

Co-authored-by: mikayla-maki <mikayla.c.maki@gmail.com>

Conrad Irwin and mikayla-maki created

63c0150 Fix handling of holding modifier to show edit prediction (#24580)

Click to expand commit body
Meant to include this in #24442

Release Notes:

- N/A

Michael Sloan created

78a5cf0 Fix display of bindings for `editor::AcceptInlineCompletion` + add validation + use modifiers from keymap (#24442)

Click to expand commit body
Release Notes:

- N/A

Michael Sloan created

43afa68 Make migration notification not display if some bug causes no changes (#24578)

Click to expand commit body
When working on #24442, I did a project wide replacement of
`AcceptInlineCompletion` with `AcceptEditPrediction`, as I was updating
the branch to mmain and that rename had happened. This also replaced it
in the migrator, causing the migration notification to always pop up on
keymap changes.

Checking if the migration actually changes the text makes it behave
better if this variety of bug happens in the future.

Release Notes:

- N/A

Michael Sloan created

0fd2203 context_menu: Use `when` instead of if-block (#24566)

Click to expand commit body
See
https://github.com/zed-industries/zed/pull/24562#issuecomment-2648343416
. Should have just added that to my original comment btw - sorry!

CC @danilo-leal 

Release Notes:

- N/A

Finn Evers created

72e1947 Update tree-sitter to 0.24 (#24492)

Click to expand commit body
I didn't update it to 0.25 because its Wasm support seems to be
partially broken due to
https://github.com/tree-sitter/tree-sitter/pull/3938: it didn't
introduce a check that the Wasm module's ABI is new enough to include
supertype info while parsing it, and so in the case where it isn't it
ends up interpreting random bytes as the number of supertypes, causing
out-of-bounds memory accesses.

Closes #24489

Release Notes:

- Fixed a rare crash during syntax highlighting

Liam Murphy created

d9909c6 Fix panic when outline items have no name (#24574)

Click to expand commit body
Closes #23787

Release Notes:

- Fixed a crash when searching the outline view in certain Ruby files.

Max Brunsfeld created

4f72005 Revert "Fix `editor::GoToDiagnostics` cycle (#24446)" (#24568)

Click to expand commit body
This reverts commit 4f65cfa93d183295289a4313e550c434b8ab7fc7.

Release Notes:

- N/A

Kirill Bulatov created

de8d4d0 git_ui: Update git panel commit editor, start on quick commit

Click to expand commit body
- Fixes commit editor issues & updates style
- Starts on quick commit (not hooked up to anything)
- Updates some panel styles
- Adds SwitchWithLabel
- 
Release Notes:

- N/A

Nate Butler created

69d415c vim: Multiline operation improvements (#24518)

Click to expand commit body
Closes #15711

Discussed changes to match neovim in
https://github.com/zed-industries/zed/pull/24481#issuecomment-2644504695
-- `vi{` matches neovim with treesitter instead of vanilla neovim.
Change and delete matches standard neovim.

Not sure if this is the best way to do it, implemented post processing
to change and delete objects.
I think another way would be adjust the range to trim the trailing
newline char on change and delete operations, instead of having to add
it back.

||Before|After|
|---|---|---|

|initial|![image](https://github.com/user-attachments/assets/0bab37b7-c0ac-4992-a365-b7ec304a6800)||
| `vi{` |
![image](https://github.com/user-attachments/assets/4c802fcd-fa7e-45ba-b7d4-3283ed538e10)
|
![image](https://github.com/user-attachments/assets/4394bb6e-418b-4463-9737-f9bdfc6d31c2)
|
| `ci{` |
![image](https://github.com/user-attachments/assets/b5eabb58-4a93-4c98-80b6-f34a6525b1fb)
|
![image](https://github.com/user-attachments/assets/79af57e4-260c-4432-af66-eba5285d97a0)
|
| `di{` |
![image](https://github.com/user-attachments/assets/190a70e7-71fd-47fe-9d6c-2082f2034d0f)
|
![image](https://github.com/user-attachments/assets/775b86a9-68c1-4397-a44b-c645a772de63)
|

Release Notes:

- vim: Improved multi-line operations

5brian created

d292b7c context menu: Use `invisible()` to hide the check icon (#24562)

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

Release Notes:

- N/A

Danilo Leal created

ca4378c ui: Use `cursor: pointer` for `Toggle`s (#24563)

Click to expand commit body
Closes #ISSUE

Release Notes:

- N/A

Piotr Osiewicz created

d42322a php: Update `brackets.scm` (#24558)

Click to expand commit body
Closes #24550 
Adds some missing brackets to the PHP language extension.

Finn Evers created

3f0288e docs: Add a light border to h2s (#24554)

Click to expand commit body
I was finding hard to navigate the "Configuring Zed" page with just
white space creating a boundary between the different chunks of content.
I think a slight border below the h2 heading helps a lot with that!

Release Notes:

- N/A

Danilo Leal created

d15a61a context menu: Adjust toggleable entry label alignment (#24549)

Click to expand commit body
Previously, we were passing an `IconSize` that had a default size. Given
the check icon is small by default, when the entry is not toggled, that
caused a slight misalignment between the toggled and not-toggled items.
I'm passing now the same icon element but inside an opacity 0 div. Open
to other suggestions if this feels clunky.

| Before | After |
|--------|--------|
| <img width="946" alt="Screenshot 2025-02-10 at 7 58 28 AM"
src="https://github.com/user-attachments/assets/4d2b3f12-72c5-4c8d-acaf-c16230250560"
/> | <img width="943" alt="Screenshot 2025-02-10 at 7 58 37 AM"
src="https://github.com/user-attachments/assets/2df64752-7273-4bdc-9f6b-5153ed52c889"
/> |

Release Notes:

- N/A

Danilo Leal created

e72f7b4 edit predictions: Put back status bar button tooltips (#24548)

Click to expand commit body
These were wrongly removed in
https://github.com/zed-industries/zed/pull/24540; putting them back.

cc @SomeoneToIgnore 

Release Notes:

- N/A

Danilo Leal created

d0c4c66 Brighten yellow and black terminal colors in One themes (#24420)

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

I made some fine adjustments to the color of the theme with reference
to' Window Terminal' to make it look good. If there is anything
inappropriate in this revision, please also point it out. :)


![window-terminal-one-light](https://github.com/user-attachments/assets/86c4002f-a5a7-4ab1-81de-e6ed0529fe06)

![window-terminal-one-dark](https://github.com/user-attachments/assets/c57095d7-0131-4978-ae6d-7105639110b5)

Release Notes:
- N/A

Libon created

994bea0 workspace: Fix pane focus transfer when closing another pane (#23175)

Click to expand commit body
Closes #23123 

Only close current active_pane should move focus to other pane.

Release Notes:

- N/A

CharlesChen0823 created

6f7f0f3 Fix hover tooltips appearing after related element is pressed (#24540)

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

Reworks all trigger declarations from
`.trigger(element.tooltip(tooltip))` into
`.trigger_with_tooltip(element, tooltip)` , with new API disallowing
simultaneous trigger and tooltip display.

All existing `.trigger(` calls were replaced, except 2 not applicable
(in dock.rs and pane.rs), 15 left as ones without tooltips, and 2
unchanged places in `inline_completion_button.rs`, where


https://github.com/zed-industries/zed/blob/0f7bb2e9fd6dc1fe3f0127de19df372f75ad0c4f/crates/inline_completion_button/src/inline_completion_button.rs#L311-L319

`with_animation` does not allow us to simply use the same approach.

Release Notes:

- Fixed hover tooltips appearing after related element is pressed

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>

Kirill Bulatov and Danilo Leal created