Since our last measurements, startup time in Zed had regressed quite
significantly. This was due to several issues:
- We were loading IBMPlex, which we're not really using in the UI.
- Images were being parsed in the foreground, thus blocking the main
thread
- Language models (for semantic index and assistant) were being loaded
in the foreground, thus blocking the main thread
- Interaction with the keychain was blocking the main thread
In addition to these, with this pull request we will now deserialize the
items for a pane in parallel, as opposed to doing so sequentially.
All combined, when running the zed binary directly this brings startup
time from ~350ms to ~210ms on my machine.
Release Notes:
- Improved startup time.
Antonio Scandurra
created
25a7eb2
Move interaction with keychain off the main thread
Antonio Scandurra
created
2ce24dc
Fix tab bar button's focus handling lagging behind (#4247)
Click to expand commit body
This fixes https://github.com/zed-industries/community/issues/2442 for
me.
Previously, the tab bar buttons would stay when the chat panel was
opened (and received focus) until something else was drawn (or caused a
render?)
With this change, the tab bar buttons are only shown if the pane was
focus.
I'm not sure about the side-effects of this, but the toolbar still seems
to work fine.
### Before
https://github.com/zed-industries/zed/assets/1185253/24b56e51-467b-4a09-909f-72ee6f76f32c
### After
https://github.com/zed-industries/zed/assets/1185253/18865f49-d00e-453a-8a38-aee15f06beb8
### Release Notes:
- (Added|Fixed|Improved) ...
([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
Thorsten Ball
created
b9218ae
Add module documentation to GPUI and make gpui.rs example compile (#4241)
fe2cb9f
fixup! pane: Another stab at focus flickers in tab bar
Piotr Osiewicz
created
0497b2f
pane: Another stab at focus flickers in tab bar
Click to expand commit body
This time around, we address the flicker seen in #3857 by querying the active item (that might've just been added),
as it knows whether it has focus even if the parent Pane does not.
Co-authored-by: Thorsten <thorsten@zed.dev>
e4604eb
Parallelize deserialization of pane items on startup
Click to expand commit body
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
Antonio Scandurra
and
Mikayla Maki
created
526ea40
Log if element arena allocation is >80% (#4246)
Click to expand commit body
We recently doubled the size of the `ELEMENT_ARENA` after someone ran
into a panic due to the arena running out of space.
This adds some logging so that we can hopefully develop a better
understanding of when the element area's allocation is elevated.
Release Notes:
- N/A
Antonio Scandurra
created
027f425
Fix tab bar button's focus handling lagging behind
Click to expand commit body
This fixes https://github.com/zed-industries/community/issues/2442 for
me.
Previously, the tab bar buttons would stay when the chat panel was
opened (and received focus) until something else was drawn (or caused a
render?)
With this change, the tab bar buttons are only shown if the pane was
focus.
I'm not sure about the side-effects of this, but the toolbar still seems
to work fine.
Thorsten Ball
created
e018506
Cache font-missing result to avoid unnecessary lookups (#4245)
Click to expand commit body
This fixes the performance problem we saw in
https://github.com/zed-industries/community/issues/2405.
In a trace we could see that if a font is missing we'd constantly look
it up and never cache that it's missing.
This changes that and does cache the font-is-missing result.
Drawback is that one would need to restart Zed after installing a
missing font that was configured in settings. That seems acceptable for
now, though.
Release Notes:
- Improved rendering performance when configured fonts are missing on
the system.
We recently doubled the size of the `ELEMENT_ARENA` after someone ran
into a panic due to the arena running out of space.
This adds some logging so that we can hopefully develop a better
understanding of when the element area's allocation is elevated.
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball
and
Antonio
created
4800991
Cache font-missing result to avoid unnecessary lookups
Click to expand commit body
This fixes the performance problem we saw in https://github.com/zed-industries/community/issues/2405.
In a trace we could see that if a font is missing we'd constantly look
it up and never cache that it's missing.
This changes that and does cache the font-is-missing result.
Drawback is that one would need to restart Zed after installing a
missing font that was configured in settings. That seems acceptable for
now, though.
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball
and
Antonio
created
bd6197e
Increase capacity of element arena to 8MB (#4244)
Click to expand commit body
This fixes a panic we just saw on nightly. It's the first time we see
this panic, so I think it's pretty safe to assume having twice as much
capacity will fix it.
Release Notes:
- Fixed a crash that could sometimes occur when the window contained
lots of graphical elements.
This fixes a panic we just saw on nightly. It's the first time we
see this panic, so I think it's pretty safe to assume having twice as
much capacity will fix it.
This PR does some cleanup of the `gpui` docs, making sure we're linking
things appropriately and following good Rust documentation style.
Release Notes:
- N/A
Marshall Bowers
created
1aa02ac
Ensure that notify observations are sent during `Window::draw()` (#4236)
Click to expand commit body
This PR fixes a bug in GPUI where the observation API would not be
triggered if a focus event caused a `notify()`
Release Notes:
- N/A
This PR adds a `CODE_OF_CONDUCT.md` that links out to the existing code
of conduct on the Zed site.
The link in the file is currently a dead link, but will work once the
new site goes live tomorrow.
Release Notes:
- N/A
* Fixed jumping of list item when the separator appeared and
disappeared.
* Fixed a bug where the selection got into a valid state when updating
the matches
Release Notes:
- Fixed an issue where the file finder's selection got into a state
where nothing was selected after filtering the matches.
This PR adds a barebones README to the `gpui` crate, just so folks have
somewhere to land on when we link them here from
[gpui.rs](https://www.gpui.rs/).
We can flesh this out as we go.
Release Notes:
- N/A
Marshall Bowers
created
a3968c5
Fix rendering of diagnostic blocks (#4232)
Click to expand commit body
- Distinct colors to make it not confusing
- Avoid overflowing the edge of the editor when the message is long
Release Notes:
- Improved display of diagnostic blocks (F8)
Conrad Irwin
created
880d330
Clear selected index when updating file finder's matches
Max Brunsfeld
created
1b12437
Render file finder separator in a way that doesn't affect layout
Click to expand commit body
Previously, while typing, the separator appearing and disappeaering would
cause the layout of the items below to jump up and down.
Reverts zed-industries/zed#4226
Unfortunately there where some worse states possible after this PR.
Reverting until after the launch, as the problems it addresses are still
bad.

- Distinct colors to make it not confusing
- Avoid overflowing the edge of the editor when the message is long
Conrad Irwin
created
f2ff7fa
chore: Change AGPL-licensed crates to GPL (except for collab) (#4231)
Click to expand commit body
- [x] Fill in GPL license text.
- [x] live_kit_client depends on live_kit_server as non-dev dependency,
even though it seems to only be used for tests. Is that an issue?
Release Notes:
- N/A
Piotr Osiewicz
created
9f6072c
Revert "Improve completion, action and shared project popovers' layout"
Mikayla Maki
created
b20b1d4
Revert search in gitignored files in file finder (#4229)
Click to expand commit body
Reverts
https://github.com/zed-industries/zed/pull/3748/commits/2f56fe9129e98520ee9ffbc79c38f0d01ae4ca4d
since gitignored file indexing is inconsistent.
Release Notes:
- Removed the ability to search in gitignored files via file_finder for
now, as it's not consistent enough for good UX
Kirill Bulatov
created
e6573e9
Revert search in gitignored files in file finder
Kirill Bulatov
created
db22bab
CI: Do not run cargo check --tests before running the tests (#4228)
Click to expand commit body
This is a bit redundant, as cargo test does not reuse results of cargo
check, so we're essentially doing the cargo check unnecessarily.
Release Notes:
- N/A
Piotr Osiewicz
created
2d7d071
Use a different color for ignored files in the project panel (#4227)
Click to expand commit body

Release Notes:
- Fixed an issue where ignored files were not visually distinguished in
the project panel.
Max Brunsfeld
created
4e970e9
Use a different color for ignored files in the project panel