Commit graph

54 commits

Author SHA1 Message Date
Max Brunsfeld
d43df9e841
Fix workspace migration failure (#36911)
This fixes a regression on nightly introduced in
https://github.com/zed-industries/zed/pull/36714

Release Notes:

- N/A
2025-08-26 00:27:52 +00:00
Marshall Bowers
2e1ca47241
Make fields of AiUpsellCard private (#36888)
This PR makes the fields of the `AiUpsellCard` private, for better
encapsulation.

Release Notes:

- N/A
2025-08-25 17:21:20 +00:00
Peter Tripp
ac9fdaa1da
onboarding: Improve Windows/Linux keyboard shortcuts; example ligature (#36712)
Small fixes to onboarding.
Correct ligature example.
Replace`ctrl-escape` and `alt-tab` since they are reserved on windows
(and often on linux) and so are caught by the OS.

Release Notes:

- N/A
2025-08-22 11:51:01 -04:00
tidely
6ed29fbc34
Enforce style lints which do not have violations (#36580)
Release Notes:

- N/A
2025-08-20 14:07:37 +02:00
tidely
7bdc99abc1
Fix clippy::redundant_clone lint violations (#36558)
This removes around 900 unnecessary clones, ranging from cloning a few
ints all the way to large data structures and images.

A lot of these were fixed using `cargo clippy --fix --workspace
--all-targets`, however it often breaks other lints and needs to be run
again. This was then followed up with some manual fixing.

I understand this is a large diff, but all the changes are pretty
trivial. Rust is doing some heavy lifting here for us. Once I get it up
to speed with main, I'd appreciate this getting merged rather sooner
than later.

Release Notes:

- N/A
2025-08-20 12:20:13 +02:00
Piotr Osiewicz
6825715503
Another batch of lint fixes (#36521)
- **Enable a bunch of extra lints**
- **First batch of fixes**
- **More fixes**

Release Notes:

- N/A
2025-08-19 20:33:44 +00:00
Piotr Osiewicz
05fc0c432c
Fix a bunch of other low-hanging style lints (#36498)
- **Fix a bunch of low hanging style lints like unnecessary-return**
- **Fix single worktree violation**
- **And the rest**

Release Notes:

- N/A
2025-08-19 21:26:17 +02:00
Umesh Yadav
a91acb5f41
onboarding: Fix theme selection in system mode (#36484)
Previously, selecting the "System" theme during onboarding would
hardcode the theme based on the device's current mode (e.g., Light or
Dark). This change ensures the "System" setting is saved correctly,
allowing the app to dynamically follow the OS theme by inserting the
correct theme in the config for both light and dark mode.

Release Notes:

- N/A

Signed-off-by: Umesh Yadav <git@umesh.dev>
2025-08-19 14:43:54 -04:00
Piotr Osiewicz
9e0e233319
Fix clippy::needless_borrow lint violations (#36444)
Release Notes:

- N/A
2025-08-18 21:54:35 +00:00
Agus Zubiaga
8b89ea1a80
Handle auth for claude (#36442)
We'll now use the anthropic provider to get credentials for `claude` and
embed its configuration view in the panel when they are not present.

Release Notes:

- N/A
2025-08-18 20:40:59 +00:00
Danilo Leal
8282b9cf00
project panel: Add git clone action to empty state (#36371)
This PR adds the git clone action to the project panel. It also changes
the "open" button to open a folder instead of the recent projects modal,
which feels faster to start with, more intuitive, and also consistent
with VS Code (which I think is good in this specific case).

<img width="500" height="1334" alt="CleanShot 2025-08-17 at 2  10 01@2x"
src="https://github.com/user-attachments/assets/ff953228-9e8e-413b-89ba-fa0870a0df17"
/>

Release Notes:

- Improved the project panel empty state by including the git clone
action and allowing users to quickly open a local folder.
2025-08-17 17:27:42 +00:00
Finn Evers
a6e2e0d24a
onboarding: Fix minimap typo on editing page (#36143)
This PR fixes a small typo on the onboarding editing page where it
should be "Minimap" instead of "Mini Map"

Release Notes:

- N/A
2025-08-13 20:31:28 +00:00
Anthony Eid
0b9c9f5f2d
onboarding: Make Welcome page persistent (#36127)
Release Notes:

- N/A
2025-08-13 16:42:09 +00:00
Danilo Leal
d9a94a5496
onboarding: Remove feature flag and old welcome crate (#36110)
Release Notes:

- N/A

---------

Co-authored-by: MrSubidubi <dev@bahn.sh>
Co-authored-by: Anthony <anthony@zed.dev>
2025-08-13 13:18:24 -03:00
Anthony Eid
a7442d8880
onboarding: Add more telemetry (#36121)
1. Welcome Page Open
2. Welcome Nav clicked
3. Skip clicked
4. Font changed
5. Import settings clicked
6. Inlay Hints
7. Git Blame
8. Format on Save
9. Font Ligature
10. Ai Enabled
11. Ai Provider Modal open


Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
2025-08-13 12:02:14 -04:00
Danilo Leal
abde7306e3
onboarding: Adjust page layout (#36112)
Fix max-height and make it scrollable as well, if needed.

Release Notes:

- N/A
2025-08-13 10:35:47 -03:00
Finn Evers
7f1a5c6ad7
ui: Make toggle button group responsive (#36100)
This PR improves the toggle button group to be more responsive across
different layouts. This is accomplished by ensuring each button takes up
the same amount of space in the parent containers layout.

Ideally, this should be done with grids instead of a flexbox container,
as this would be much better suited for this purpose. Yet, since we lack
support for this, we go with this route for now.

| Before | After |
| --- | --- |
| <img width="1608" height="1094" alt="Bildschirmfoto 2025-08-13 um 11
24 26"
src="https://github.com/user-attachments/assets/2a4b5a59-6483-4f79-8fcb-e26e22071795"
/> | <img width="1608" height="1094" alt="Bildschirmfoto 2025-08-13 um
11 29 36"
src="https://github.com/user-attachments/assets/e6402729-6a8f-4a44-b79e-a569406edfff"
/> |


Release Notes:

- N/A
2025-08-13 14:02:20 +02:00
Anthony Eid
96093aa465
onboarding: Link git clone button with action (#35999)
Release Notes:

- N/A
2025-08-13 01:18:11 -04:00
Anthony Eid
13a2c53381
onboarding: Fix onboarding font context menu not scrolling to selected entry open (#36080)
The fix was changing the picker kind we used from `list` variant to a
`uniform` list

`Picker::list()` still has a bug where it's unable to scroll to it's
selected entry when the list is first openned. This is likely caused by
list not knowing the pixel offset of each element it would have to
scroll pass to get to the selected element


Release Notes:

- N/A

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
2025-08-12 18:02:10 -04:00
Kirill Bulatov
6bd2f8758e
Simplify the lock usage (#35957)
Follow-up of https://github.com/zed-industries/zed/pull/35955

Release Notes:

- N/A

Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
2025-08-10 19:32:25 +00:00
Kirill Bulatov
95e302fa68
Properly use static instead of const for global types that need a single init (#35955)
Release Notes:

- N/A
2025-08-10 18:01:54 +00:00
Danilo Leal
024a5bbcd0
onboarding: Add some adjustments (#35887)
Release Notes:

- N/A
2025-08-08 16:40:41 -03:00
Danilo Leal
2cde6da5ff
Redesign and clean up all icons across Zed (#35856)
- [x] Clean up unused and old icons
- [x] Swap SVG for all in-use icons with the redesigned version
- [x] Document guidelines

Release Notes:

- N/A
2025-08-08 15:34:36 -03:00
Anthony Eid
f2435f7284
onboarding: Fix a double lease panic caused by Onboarding::clone_on_split (#35815)
Release Notes:

- N/A
2025-08-08 17:02:17 +00:00
Danilo Leal
070f7dbe1a
onboarding: Add fast-follow adjustments (#35814)
Release Notes:

- N/A
2025-08-07 19:01:52 -03:00
Danilo Leal
e227b5ac30
onboarding: Add young account treatment to AI upsell card (#35785)
Release Notes:

- N/A
2025-08-07 10:42:46 -03:00
Danilo Leal
cc93175256
Recategorize a few items in the component preview (#35681)
Release Notes:

- N/A
2025-08-05 23:11:43 +00:00
Ben Kunkle
6b77654f66
onboarding: Wire up tab index (#35659)
Closes #ISSUE

Allows tabbing through everything in all three pages. Until #35075 is
merged it is not possible to actually "click" tab focused buttons with
the keyboard.

Additionally adds an action `onboarding::Finish` and displays the
keybind. The action corresponds to both the "Skip all" and "Start
Building" buttons, with the keybind displayed similar to how it is for
the page nav buttons

Release Notes:

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

---------

Co-authored-by: MrSubidubi <finn@zed.dev>
2025-08-05 19:48:15 +00:00
Finn Evers
19c1504c8f
ui: Wire up tab indices within buttons (#35368)
This change adds the current tab index functionality to buttons and
implements a proof of concept for the new welcome page.

Primarily blocked on https://github.com/zed-industries/zed/pull/34804,
secondarily on https://github.com/zed-industries/zed/pull/35075 so we
can ensure navigation always works as intended.

Another thing to consider here is whether we want to assign the tab
order more implicitly / "automatically" based on the current layout
ordering. This would generally enable us to add a default order to
focusable elements if we want this. See [the
specification](https://html.spec.whatwg.org/multipage/interaction.html#flattened-tabindex-ordered-focus-navigation-scope)
on some more context on how the web usually handles this for focusable
elements.

Release Notes:

- N/A
2025-08-05 13:05:18 -04:00
Danilo Leal
5940ed979f
onboarding: Use a picker for the font dropdowns (#35638)
Release Notes:

- N/A
2025-08-05 11:38:08 -03:00
Ben Kunkle
06226e1cbd
onboarding: Show indication that settings have already been imported (#35615)
Co-Authored-By: Danilo <danilo@zed.dev>
Co-Authored-By: Anthony <anthony@zed.dev>

Release Notes:

- N/A
2025-08-04 20:01:53 -04:00
Danilo Leal
e1d0e3fc34
onboarding: Add explainer tooltips for the editing and AI section (#35619)
Includes the ability to add a tooltip for both the badge and switch
field components.

Release Notes:

- N/A
2025-08-04 20:52:22 -03:00
Ben Kunkle
24e7f868ad
onboarding: Go back to not having system be separate (#35499)
Going back to having system be mutually exclusive with light/dark to
simplify the system. We instead just show both light and dark when
system is selected

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony Eid <hello@anthonyeid.me>
2025-08-04 17:56:56 -04:00
Danilo Leal
6e77c6a5ef
onboarding: Adjust the welcome page a bit (#35600)
Release Notes:

- N/A
2025-08-04 19:02:29 +00:00
Danilo Leal
0ea4016e66
onboarding: Adjust skip button as flow progresses (#35596)
Release Notes:

- N/A
2025-08-04 15:16:52 -03:00
Michael Sloan
899bc8a8fd
Fix edit prediction disablement with "disable_ai": true setting (#35513)
Even after #35327 edit predictions were still being queried and shown
after setting `"disable_ai": true`

Also moves `DisableAiSettings` to the `project` crate so that it gets
included in tests via existing use of `Project::init_settings(cx)`.

Release Notes:

- Fixed `"disable_ai": true` setting disabling edit predictions.
2025-08-04 15:45:11 +00:00
Anthony Eid
edac6e4246
Add font ligatures and format on save buttons to onboarding UI (#35487)
Release Notes:

- N/A
2025-08-01 17:50:51 -04:00
Ben Kunkle
561ccf86aa
onboarding: Serialize onboarding page (#35490)
Closes #ISSUE

Serializes the onboarding page to the database to ensure that if Zed is
closed during onboarding, re-opening Zed restores the onboarding state
and the most recently active page (Basics, Editing, etc) restored. Also
has the nice side effect of making dev a bit nicer as it removes the
need to re-open onboarding and navigate to the correct page on each
build.

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-08-01 20:45:29 +00:00
Ben Kunkle
ac75593198
onboarding: Actions for page navigation (#35484)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-08-01 19:30:25 +00:00
Danilo Leal
faa45c53d7
onboarding: Add design adjustments (#35480)
Release Notes:

- N/A

---------

Co-authored-by: Anthony <anthony@zed.dev>
2025-08-01 15:08:15 -03:00
Antonio Scandurra
f888f3fc0b
Start separating authentication from connection to collab (#35471)
This pull request should be idempotent, but lays the groundwork for
avoiding to connect to collab in order to interact with AI features
provided by Zed.

Release Notes:

- N/A

---------

Co-authored-by: Marshall Bowers <git@maxdeviant.com>
Co-authored-by: Richard Feldman <oss@rtfeldman.com>
2025-08-01 17:37:38 +00:00
Finn Evers
b01d1872cc
onboarding: Add the AI page (#35351)
This PR starts the work on the AI onboarding page as well as the
configuration modal

Release Notes:

- N/A

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Anthony <anthony@zed.dev>
2025-08-01 10:43:59 -04:00
Ben Kunkle
c946b98ea1
onboarding: Expand power of theme selector (#35421)
Closes #ISSUE

The behavior of the theme selector is documented above the function,
copied here for reference:
```rust
/// separates theme "mode" ("dark" | "light" | "system") into two separate states
/// - appearance = "dark" | "light"
/// - "system" true/false
/// when system selected:
///  - toggling between light and dark does not change theme.mode, just which variant will be changed
/// when system not selected:
///  - toggling between light and dark does change theme.mode
/// selecting a theme preview will always change theme.["light" | "dark"] to the selected theme,
///
/// this allows for selecting a dark and light theme option regardless of whether the mode is set to system or not
/// it does not support setting theme to a static value
```

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-07-31 16:21:58 -04:00
Anthony Eid
c6947ee4f0
onboarding ui: Add theme preview tiles and button functionality to basic page (#35413)
This PR polishes and adds functionality to the onboarding UI with a
focus on the basic page. It added theme preview tiles, got the Vim,
telemetry, crash reporting, and sign-in button working.

The theme preview component was moved to the UI crate and it now can
have a click handler on it.

Finally, this commit also changed `client::User.github_login` and
`client::UserStore.by_github_login` to use `SharedStrings` instead of
`Strings`. This change was made because user.github_login was cloned in
several areas including the UI, and was cast to a shared string in some
cases too.

Release Notes:

- N/A

---------

Co-authored-by: Remco Smits <djsmits12@gmail.com>
2025-07-31 18:40:41 +00:00
Danilo Leal
5488398986
onboarding: Refine page and component designs (#35387)
Includes adding new variants to the Dropdown and Numeric Stepper
components.

Release Notes:

- N/A
2025-07-31 05:32:18 +00:00
Anthony Eid
2d4afd2119
Polish onboarding page (#35367)
- Added borders to the numeric stepper.
- Changed the hover mouse style for SwitchField.
- Made the edit page toggle buttons more responsive.

Release Notes:

- N/A
2025-07-30 20:35:21 +00:00
Ben Kunkle
afcb8f2a3f
onboarding: Wire up settings import (#35366)
Closes #ISSUE

Release Notes:

- N/A *or* Added/Fixed/Improved ...
2025-07-30 20:09:11 +00:00
Finn Evers
f8d1062484
onboarding: Fix keybindings showing up after a delay (#35342)
This fixes an issue where keybinds would only show up after a delay on
the welcome page upon re-opening it. It also binds one of the buttons to
the corresponding action.

Release Notes:

- N/A
2025-07-30 16:18:14 +00:00
Anthony Eid
48e085a523
onboarding ui: Add editing page to onboarding page (#35298)
I added buttons for inlay values, showing the mini map, git blame, and
controlling the UI/Editor Font/Font size. The only thing left for this
page is some UI clean up and adding buttons for setting import from
VSCode/cursor.

I also added Numeric Stepper as a component preview.

Current state:
<img width="1085" height="585" alt="image"
src="https://github.com/user-attachments/assets/230df474-da81-4810-ba64-05673896d119"
/>


Release Notes:

- N/A
2025-07-29 21:54:58 +00:00
Finn Evers
ca34ead6d9
onboarding: Add proper icon for action (#35241)
This change updates one icon within the onboarding flow to the indended
icon for that entry.

Release Notes:

- N/A
2025-07-28 22:02:12 +00:00