Commit graph

25053 commits

Author SHA1 Message Date
Michael Sloan
146b9c232c
Sort and dedupe .gitignore files (#24491)
Release Notes:

- N/A
2025-02-08 02:17:17 +00:00
Michael Sloan
be26acccca
Cargo.lock update (#24486)
Release Notes:

- N/A
2025-02-08 00:18:20 +00:00
Beniamin Zagan
4be89ea60f
title_bar: Add menu item to deploy icon theme selector (#24482)
Added the icons option in the title bar between Themes and Extension.

| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="215" alt="Screenshot 2025-02-07 at 5 18 10 PM"
src="https://github.com/user-attachments/assets/ff8bf5ce-c176-4d8c-8b0e-bb1cc65ec1d8"
/> | <img width="206" alt="Screenshot 2025-02-07 at 5 18 01 PM"
src="https://github.com/user-attachments/assets/c47a302e-98af-4530-a908-097b8306f2f0"
/> |

Release Notes:

- Added an option to open the icon theme selector from the user menu.

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-02-07 22:33:00 +00:00
Marshall Bowers
e17e838c07
Include prediction ID on edit prediction accepted/discarded events (#24480)
This PR updates the edit predictions to include the prediction ID
returned from the server on the resulting telemetry events indicating
whether the prediction was accepted or discarded.

The `prediction_id` on the events can then be correlated with the
`request_id` on the server-side prediction events.

Release Notes:

- N/A
2025-02-07 22:06:37 +00:00
Marshall Bowers
ed5656813c
inline_completion: Add missing punctuation (#24477)
This PR adds some missing punctuation.

Release Notes:

- N/A
2025-02-07 21:03:37 +00:00
Danilo Leal
c4bcff1e87
edit predictions: Add binding to the prediction toggle (#24468)
This PR primary goal is to add a keybinding to the (ephemeral)
prediction toggle. In doing that, we also standardized the keybinding to
open the status bar menu with it.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
2025-02-07 18:01:39 -03:00
Danilo Leal
07f1b612cf
edit predictions: Fix translucent "jump to edit" background color (#24473)
This PR uses a pretty cool GPUI method called `blend` to make this
callout's background color not translucent.

| Before | Header |
|--------|--------|
| <img width="732" alt="Screenshot 2025-02-07 at 4 58 16 PM"
src="https://github.com/user-attachments/assets/2a5df61b-dfa0-4edc-bffa-a605a2aa491a"
/> | <img width="732" alt="Screenshot 2025-02-07 at 4 56 48 PM"
src="https://github.com/user-attachments/assets/5dee9fca-6239-4ae0-80f5-dcc6abf0e779"
/> |

Release Notes:

- N/A
2025-02-07 17:58:20 -03:00
Marshall Bowers
9e5bc81f1c
zeta: Promote line comment to doc comment (#24476)
This PR promotes a line comment for the `tos_accepted` field to a doc
comment.

Release Notes:

- N/A
2025-02-07 20:57:42 +00:00
Conrad Irwin
7148092e12
Fix adding new git repos to a project (#24471)
Release Notes:

- N/A
2025-02-07 20:08:09 +00:00
Jason Lee
ead5a836a1
gpui: Add data table example (#24373)
Release Notes:

- N/A

As https://github.com/zed-industries/zed/discussions/24260 I mentioned
issue.

Make a complex data table example to test the text rendering
performance.

This example also can be an example to show how to build a large data
table.

```bash
cargo run -p gpui --example data_table
```

<img width="2004" alt="image"
src="https://github.com/user-attachments/assets/653771e5-ef08-4d76-97b9-90ea4b78be59"
/>

----

I will try to do some test. 

For example: With a threshold for the hold number of caches in
`FrameCache`, and only when the threshold is greater than a certain
number, some caches are released, or when a certain time has passed. I
am not sure if this is feasible.

This example is added to help us to test.
2025-02-07 11:54:34 -08:00
Conrad Irwin
3be8066415
Newlines in commit editor (#24465)
Release Notes:

- N/A
2025-02-07 12:31:12 -07:00
Antonio Scandurra
f6e396837c
Re-introduce syntax-based context and use new model (#24469)
Release Notes:

- N/A

---------

Co-authored-by: Marshall <marshall@zed.dev>
2025-02-07 19:19:57 +00:00
Agus Zubiaga
fd7fa87939
edit predictions: Restore red dot in status buttons when pending ToS (#24408)
In one of the recent changes to the edit predictions status bar menu, we
lost the red dot that is displayed when the user has Zed as the provider
but hasn't accepted terms of service. Note: All the checks were still in
place, just the visual indicator was missing.

![CleanShot 2025-02-06 at 20 22
21@2x](https://github.com/user-attachments/assets/da8f25dd-5ed2-4bf9-8453-10b80f00bf63)


Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2025-02-07 15:42:27 -03:00
Danilo Leal
a7a14e59bf
edit predictions: Clarify disabled_globs documentation (#24460)
This PR clarifies how the `disabled_globs` work.

Release Notes:

- N/A

---------

Co-authored-by: Bennet Bo Fenner <53836821+bennetbo@users.noreply.github.com>
2025-02-07 19:35:55 +01:00
Marshall Bowers
8ff8dbdb2b
assistant_context_editor: Fix patch block not rendering due to window reborrow (#24461)
This PR fixes an issue where the Assistant patch block was not being
rendered when using "Suggest Edits".

The issue was that the `BlockContext` already has a borrow of the
`Window`, so we can't use `update_in` to reborrow the window.

The fix is to reuse the existing `&mut Window` reference from the
`BlockContext` so we don't need to `update_in`.

Closes #24169.

Release Notes:

- Assistant: Fixed an issue where the patch block was not being rendered
when using "Suggest Edits".

---------

Co-authored-by: Max <max@zed.dev>
2025-02-07 18:03:19 +00:00
smit
44c6a54f95
pane: Improve close active item to better handle pinned tabs (#23488)
Closes #22247

- [x] Do not close pinned tab on keyboard shortcuts like `ctrl+w` or
`alt+f4`
- [x] Close pinned tab on context menu action, menu bar action, or vim
bang
- [x] While closing pinned tab via shortcut (where it won't close),
instead activate any other non-pinned tab in same pane
- [x] Else, if any other pane contains non-pinned tab, activate that
- [x] Tests

Co-authored-by: uncenter <47499684+uncenter@users.noreply.github.com>

Release Notes:

- Pinned tab now stay open when using close shortcuts, auto focuses to
any other non-pinned tab instead.
2025-02-07 22:54:57 +05:30
Bennet Bo Fenner
f0565b4e2e
edit prediction: Do not show icon as disabled when there is no buffer open (#24458)
Release Notes:

- N/A
2025-02-07 17:02:14 +00:00
Conrad Irwin
a6e15dda4b
Make it a bit clearer when people are running dev builds (#24457)
Release Notes:

- Include an indicator in About/CopySystemSpecs when running in debug mode
2025-02-07 09:57:37 -07:00
Finn Evers
144487bf1a
theme: Implement icon theme reloading (#24449)
Closes #24353 

This PR implements icon theme reload to ensure file icons are properly
updated whenever an icon theme extension is upgraded or uninstalled.

Currently, on both upgrade and uninstall of an icon theme extension the
file icons from the previously installed version will stay visibile and
will not be updated as shown in the linked issue. With this change, file
icons will properly be updated on extension upgrade or reinstall.

The code is primarily a copy for reloading the current color theme
adapted to work for icon themes. Happy for any feedback!


Release Notes:

- Fixed file icons not being properly updated upon icon theme upgrade or
uninstall.
2025-02-07 11:30:53 -05:00
Wilhelm Klopp
2d57e43e34
docs: Emphasize that Rust must be installed via rustup (#24447)
Just tried installing a dev extension and kept getting "error: failed to install dev extension".

Turns out this was because I had rust installed via homebrew and not rust. Once I switched to rustup, it worked perfectly fine.

Release Notes:

- N/A
2025-02-07 11:29:45 -05:00
Peter Tripp
c484374b2f
Make OpenKeyContextView open to the right (#24452)
Match the behavior of OpenSyntaxTreeView logs and OpenLanguageServerLogs

Release Notes:

- Make `debug::OpenSyntaxTreeView` automatically open in split to the
right
2025-02-07 11:20:27 -05:00
IaVashik
8114d17cba
google_ai: Add support for Gemini 2.0 models (#24448)
Add support for the newly released Gemini 2.0 models from Google announced this new family of models earlier this week (2025-02-05).

Release Notes:

- Added support for Google's new Gemini 2.0 models.
2025-02-07 11:18:18 -05:00
Sanjeev Shrestha
c7cd5b019b
file_icons: Use separate icon key for JSON files (#24432)
This PR updates the file icon mappings for JSON (`.json`) file map to
the`json` key. Also, updates `.json` icon from `storage` to `code`.

This allows for the JSON file icons to be replaced in icon themes.

Release Notes:

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

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-02-07 16:14:26 +00:00
Marshall Bowers
07929229ae
migrator: Sort dependencies in Cargo.toml (#24455)
This PR sorts the dependencies in the `Cargo.toml` for the `migrator`
crate.

Release Notes:

- N/A
2025-02-07 16:10:07 +00:00
smit
00c2a30059
Migrate keymap and settings + edit predictions rename (#23834)
- [x] snake case keymap properties
- [x] flatten actions
- [x] keymap migration + notfication
- [x] settings migration + notification
- [x] inline completions -> edit predictions 

### future: 
- keymap notification doesn't show up on start up, only on keymap save.
this is existing bug in zed, will be addressed in seperate PR.

Release Notes:

- Added a notification for deprecated settings and keymaps, allowing you
to migrate them with a single click. A backup of your existing keymap
and settings will be created in your home directory.
- Modified some keymap actions and settings for consistency.

---------

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
Co-authored-by: Max Brunsfeld <maxbrunsfeld@gmail.com>
2025-02-07 21:17:07 +05:30
Ben Kunkle
a1544f47ad
Fix incorrect assumption about Path.extension() (#24443)
Release Notes:

- N/A
2025-02-07 09:37:07 -06:00
Kirill Bulatov
4f65cfa93d
Fix editor::GoToDiagnostics cycle (#24446)
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.

Release Notes:

- Fixed `editor::GoToDiagnostics` action stuck when multiple diagnostics
groups belong to the same place
2025-02-07 16:49:13 +02:00
Piotr Osiewicz
b6b06cf6d8
lsp: Send DidOpen notifications when changing selections in multi buffer (#22958)
Fixes #22773

Release Notes:

- Fixed an edge case with multibuffers that could break language
features within them.
2025-02-07 12:33:35 +01:00
Michael Sloan
f700268029
Improve vim interactions with edit predictions (#24418)
* When an edit prediction is present in non-insertion modes, hide it but
show `tab Jump to edit`.
* Removes discarding of edit predictions when going from insert mode to
normal mode, instead just hide them in non-insertion modes.
* Removes zeta-specific showing of predictions in normal mode. This
behavior was only happening in special cases anyway - where the discard
of completions wasn't happening due to some other thing taking
precedence in `dismiss_menus_and_popups`.

Release Notes:

- N/A

---------

Co-authored-by: Conrad <conrad@zed.dev>
Co-authored-by: Mikayla <mikayla@zed.dev>
2025-02-07 03:53:38 -07:00
Michael Sloan
92c21a2814
Fix undismissed app notifications appearing on new workspaces (#24437)
Bug in #23817

Release Notes:

- N/A
2025-02-07 10:29:05 +00:00
Conrad Irwin
1f9d02607b
Fixes to commit button in Git Panel (#24425)
Git Panel updates:

* Fixes commit/commit all button to work (and be disabled correctly in
merge conflict status)
* Updates keyboard shortcuts and sets focus on the button (enter now
does the same as click; tab cycles between editor and change list)


Closes #ISSUE

Release Notes:

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

---------

Co-authored-by: Cole Miller <cole@zed.dev>
2025-02-07 00:21:28 -07:00
smit
6534e0bafd
linux: Fix crash when NoKeymap event is received on Wayland (#24379)
Closes #24139

For weird reasons, Sway on few linux distoros sends `NoKeymap` event when
switching windows. Zed crashes due to assertion on this event to be `XkbV1`.

To fix this, we ignore `NoKeymap` event instead crashing Zed.

Release Notes:

- Fixed a crash in Wayland-based compositors like Sway when switching windows via the keyboard.
2025-02-07 12:31:46 +05:30
Cole Miller
5ffacb9ca5
Revert "Move git status updates to a background thread (#24307)" (#24415)
This reverts commit 980ce5fbf2.

Release Notes:

- N/A

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
2025-02-07 04:46:43 +00:00
Michael Sloan
864c1ff00c
Use commondir from libgit2 instead of walking fs (#22028)
Release Notes:

- N/A
2025-02-07 04:38:09 +00:00
Michael Sloan
35ef269233
Fix build of remote_server when not in git repo (#24424)
Followup to #24258

Release Notes:

- N/A
2025-02-07 04:35:22 +00:00
Cole Miller
d97adfc540
Fix pairs of almost-adjacent hunks toggling together (#24355)
Release Notes:

- Fixed a bug where toggling a diff hunk that immediately precedes
another hunk would act on both hunks
2025-02-07 04:18:59 +00:00
Michael Sloan
a42e040660
Remove use of use_key_equivalents from linux keymap as it does nothing (#24422)
`use_key_equivalents` does nothing on linux, as key equivalents are only
supported on mac. While it could be sensible to anticipate support,
right now it is only used in these few spots, so removing it.

Release Notes:

- N/A
2025-02-07 03:46:15 +00:00
Conrad Irwin
8646d37c0c
vim: Replace with Register (#24326)
Closes #18813

Release Notes:

- vim: Add `gr` for [replace with
register](https://github.com/vim-scripts/ReplaceWithRegister)
2025-02-06 20:24:41 -07:00
Anthony Eid
d83c316e6d
Fix Project Panel select_next_git_entry action (#24217)
## Context

I noticed that the project panel `select_next_git_entry` wasn't behaving
correctly. Turns out it was searching in reverse, which caused the
action to select itself or the last entry.

This PR corrects the behavior and adds a unit test that should stop
regressions.

Note: Since select next/prev git entry uses the same function as select
next/prev diagnostic, the test partially works for that as well.

Release Notes:

- Fix bug where `select_next_git_entry` project panel action would only
select a previous entry or the currently selected entry.

---------

Co-authored-by: Mikayla Maki <mikayla@zed.dev>
2025-02-07 03:04:02 +00:00
Jason Lee
c5913899d9
gpui: Fix text-align with nowrap mode (#24116)
Release Notes:

- N/A


------

- Continue #24090 to fix text align for when used `whitespace_nowrap`.
- Fix wrapped line length calculation.

And add example

```
cargo run -p gpui --example text_layout
```

<img width="760" alt="image"
src="https://github.com/user-attachments/assets/a087c300-0e0e-4a80-98c6-90161a9b0905"
/>

---------

Co-authored-by: Owen Law <owenlaw222@gmail.com>
2025-02-06 18:51:00 -08:00
Stanislav Alekseev
e689c8c01b
markdown: Use parsed text (#24388)
Fixes #15463

Release Notes:

- Fixed display of symbols such as `&nbsp;` in hover popovers
2025-02-06 18:37:50 -08:00
Marshall Bowers
888a2df3f0
Sort Cargo.tomls (#24417)
This PR sorts the dependencies in a number of `Cargo.toml` files.

Release Notes:

- N/A
2025-02-07 02:14:57 +00:00
Caleb!
d6d0d7d3e4
Add image dimension and file size information (#21675)
Closes https://github.com/zed-industries/zed/issues/21281

@jansol, kindly take a look when you're free.


![image](https://github.com/user-attachments/assets/da9a54fa-6284-4012-a243-7e355a5290d3)

Release Notes:

- Added dimensions and file size information for images.

---------

Co-authored-by: tims <0xtimsb@gmail.com>
Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-02-07 00:56:34 +00:00
Ben Kunkle
a1ed1a00b3
Fix issue with Vim test instead of cheating (#24411)
Appears this test was failing, and someone edited the expected test
output instead of fixing it. Well no longer!

Release Notes:

- N/A

Co-authored-by: Conrad <conrad@zed.dev>
2025-02-06 18:43:30 -06:00
Cole Miller
a190f42ccc
Fix double-lease panic in Repository::activate (#24414)
Release Notes:

- N/A

Co-authored-by: maxbrunsfeld <max@zed.dev>
2025-02-07 00:33:41 +00:00
Cole Miller
59bba2a98c
Assign base text language earlier to fix missing highlighting in deletion hunks (#24413)
Release Notes:

- Fixed deletion diff hunks not being syntax highlighted in some cases

Co-authored-by: Max <max@zed.dev>
2025-02-06 16:14:47 -08:00
Peter Tripp
5315d38cf4
Update extension extraction docs (#24079)
- Fixed a regex for finding tags.
- Templatize the instructions with `$LANGNAME` to prevent manual errors
from failing to edit commands (this bit me)
- Ran formatting through Prettier
2025-02-06 19:01:32 -05:00
Ben Kunkle
337b9e62d2
Fix vim full line operations failing when no trailing newline (#24409)
Closes #24270

Release Notes:

- Fixed an issue where doing line-wise operations in vim mode on the
last line of a file with no trailing newline would not work properly
2025-02-06 17:57:24 -06:00
Cole Miller
73c487c222
Introduce diff crate to unite BufferDiff and BufferChangeSet (#24392)
This is a refactoring PR that does three things:

- First, it introduces a new `diff` crate that holds the previous
contents of the `git::diff` module, plus the `BufferChangeSet` type
formerly of `project::buffer_store`. The new crate is necessary since
simply moving `BufferChangeSet` into `git::diff` results in a dependency
cycle due to the use of `language::Buffer` to represent the diff base in
`BufferChangeSet`.
- Second, it renames the two main types in the new diff crate:
`BufferDiff` becomes `BufferDiffSnapshot`, and `BufferChangeSet` becomes
`BufferDiff`. This reflects that the relationship between these two
types (immutable cheaply-cloneable "value" type + stateful "resource
type" with subscriptions) mirrors existing pairs like
`Buffer`/`BufferSnapshot`. References to "change sets" throughout the
codebase are updated to refer to "diffs" instead.
- Finally, it moves the base_text field of the new BufferDiff type to
BufferDiffSnapshot.

Release Notes:

- N/A

---------

Co-authored-by: maxbrunsfeld <max@zed.dev>
2025-02-06 18:52:32 -05:00
Finn Evers
ffcad71bfa
file_icons: Resolve icon properly for exact file name match (#24396)
Follow-up to #24391 

The current approach has two issues:
- For the described case of `eslint.config.js`, for which a mapping
exists in `suffixes`, this would get mapped from `eslint.config.js` to
`eslint`. However, for `eslint`, there is no mapping within `suffixes`,
thus currently `get_icon_from_suffix` would return `None` and a wrong
item would be returned at a later step.
- Paths passed to this method are relative to the worktree root, thus
e.g. `eslint.config.js` files in subdirectories would still be assigned
the wrong icon.

---

Behaviour on `main`:
<img width="281" alt="main"
src="https://github.com/user-attachments/assets/19b5e5f8-e413-4ac9-a0a1-2c72f810aa86"
/>

Behaviour with this change:
<img width="299" alt="pr"
src="https://github.com/user-attachments/assets/eec70cbd-df39-49b4-8b07-d22afa949781"
/>

CC @probably-neb 

Release Notes:

- N/A
2025-02-06 17:14:39 -06:00