b3e1514
Avoid caching zed build script if git state has changed (#3610)
Click to expand commit body
@as-cii and @SomeoneToIgnore noticed a bug where Zed nightly would
continuously report that an update was available. This nightly
auto-update logic depends on the `ZED_COMMIT_SHA` constant, which is
compiled into the app via an rustc environment variable that is assigned
in the `zed2` build script.
I think the bug was caused by the `zed2` build script's output being
cached on our CI, when building the nightly app bundle. The result was
that the `publish-nightly` action updated the "current SHA" for nightly,
but uploaded an artifact whose `ZED_COMMIT_SHA` was cached from an
earlier version.
I've added a line to the `build.rs` that triggers a rerun if the
`.git/logs/HEAD` file has been changed. I think this should prevent the
unwanted caching.
We were registering `deploy` only on editors, which did succeed for
channel notes; however, channel note does not have an associated
workspace (that we pulled from the editor). It made more sense to just
register these actions for a workspace, notwithstanding the editor.
This PR also fixes a bunch of cx.dispatch_action calls to call the
handler directly instead (e.g. instead of dispatching ReplaceNext we
just call buffer_search_bar.replace_next instead) as otherwise these
actions are not handled if the buffer search bar does not have the
focus.
Release Notes:
- N/A
Piotr Osiewicz
created
a334a21
Prevent panes from overflowing the window (#3609)
Click to expand commit body
This PR fixes an issues where it was possible for panes to overflow the
window (for instance, by having a large number of tabs in the tab bar).
Release Notes:
- N/A
Marshall Bowers
created
c0846d6
Set cursor style only if we're the active window (#3607)
Click to expand commit body
Release Notes:
- N/A
Antonio Scandurra
created
13f9fec
fixup! Move away from using cx.dispatch_action in buffer search
Piotr Osiewicz
created
be57059
Move away from using cx.dispatch_action in buffer search
Piotr Osiewicz
created
b87c45e
Set cursor style only if we're the active window
* Fixed dock toggling not focusing the terminal element
* Fixed loosing focus on dock close (e.g. cmd-d on the last terminal in
the dock)
* Removed element stateless focus API since it would not work when the
element is not rendered, update all API usages to the stateful one via
`gpui::Subscription`
Release Notes:
- N/A
97eae4b
Improve rendering performance in `gpui2` (#3605)
Click to expand commit body
The biggest improvements come from preventing element moves where
unnecessary, and when they are absolutely needed, try to make the struct
we're moving as small as possible. Having big structs on the stack (such
as `Interactivity`) increases the cost of moving but also reduces
opportunities for other compiler optimizations (e.g., inlining).
One more notable change was using `FxHashMap` and `FxHashSet` in hot
code paths where we don't need those collections to be resistant to DoS.
Another thing I am seeing a lot in the profiler is interacting with
`StackingOrder` (cloning it, searching for it, inserting into the
`Scene`). I have some thoughts on how to optimize that but I punted on
it because performance seems to be pretty good now.
Release Notes:
- N/A
Antonio Scandurra
created
6159a59
Fix assertions now that we use different hash functions
Antonio Scandurra
created
2cde1a2
Re-focus window on workspace on corresponding window blur
Click to expand commit body
Co-authored-by: Antonio <antonio@zed.dev>
Kirill Bulatov
and
Antonio
created
1c437a2
Register buffer search listener on new workspaces and not editors
Piotr Osiewicz
created
717b288
Attempt to remove the dangeous element focus API
Kirill Bulatov
created
43b8d65
Transfer focus to the workspace when window focus is lost
Antonio Scandurra
created
137104e
Fix dock panels not focusing their contents on toggle
Part of
https://linear.app/zed-industries/issue/Z-1386/add-equivalent-setting-to-vscodes-auto-reveal-exclude
Deals with https://github.com/zed-industries/community/issues/800
* add a `project_panel::auto_reveal_entries` config entry to allow
disabling auto reveal in project panel (auto reveal is enabled by
default)
* add a `pane::RevealInProjectPanel` action (and a pane tab context menu
entry) to manually reveal any file entry
* stop auto revealing gitignored directories at all
We can add the auto reveal exclude globs later, if needed, but let's try
to keep the config simpler and start with a more minimalist approach.
Release Notes:
- Improved project panel auto reveal mechanics: gitignored files are not
auto revealed anymore; a `auto_reveal_entries = true` config option for
`project_panel` is added; a `pane::RevealInProjectPanel` action and a
corresponding buffer tab context menu were added
Kirill Bulatov
created
b871f90
Use `FxHashMap` and `FxHashSet` in hot code paths
Click to expand commit body
We can also use these maps and sets in place of `SeaHasher` because
they are also deterministic. Note that we're not swapping std's
`HashMap` and `HashSet` wholesale inside of `collections` because
on the server we need cryptographically secure collections.
Antonio Scandurra
created
385c830
Make each DispatchNode smaller by allocating more
f312c58
Reduce the stack size of `Interactivity` at the cost of more allocations
Antonio Scandurra
created
27d6432
Rework the way project panel auto reveals entries
Click to expand commit body
* gitignored entries are never auto revealed
* `project_panel::auto_reveal_entries = true` settings entry was added,
setting it to `false` will disable the auto reveal
* `pane::RevealInProjectPanel` action was added that activates the project panel and reveals the entry it got triggered on (including the gitignored ones)
Kirill Bulatov
created
e7094cc
Don't move `interactivity` unnecessarily during `layout`
Antonio Scandurra
created
b503edf
Avoid cloning entries in `CollabPanel::render_signed_in`
39a115b
Take a first pass at styling the welcome screen (#3601)
Click to expand commit body
This PR is a first pass at styling the welcome screen in Zed2.
Here's the current state:
<img width="1237" alt="Screenshot 2023-12-11 at 7 00 43 PM"
src="https://github.com/zed-industries/zed/assets/1486634/a0cbd5ca-7331-4785-bf46-f83fc4cb3bb6">
Release Notes:
- N/A
Marshall Bowers
created
cbce49f
Start work on dragging entries in the project panel
Max Brunsfeld
created
a208229
Use Box instead of Rc for List event handlers
75c1f0e
Add `w_vw` and `h_vh` to `StyledExt` for setting sizes in viewport units (#3600)
Click to expand commit body
This PR adds `w_vw` and `h_vh` methods to `StyledExt`.
These methods are the same as their `w` and `h` counterparts, but
operate in viewport units, giving us the equivalent of `vw` and `vh` in
CSS.
You can see them in action in this story:
```
cargo run -p storybook2 -- components/viewport_units
```
Release Notes:
- N/A
3120a9c
theme_importer: Fall back to inactive tab background if no active tab background set (#3598)
Click to expand commit body
This PR makes it so the `theme_importer` falls back to the inactive tab
background color if the theme doesn't not an active tab background
color.
This fixes the active tab color in the Synthwave 84 theme.
Release Notes:
- N/A
050ff6b
Adjust scrollbar track background and border colors (#3596)
Click to expand commit body
This PR adjusts the colors we pull from the VS Code themes to use for
the scrollbar track background and border.
For the scrollbar track background we now use the `editor.background`,
and for the scrollbar track border we use `editorOverviewRuler.border`.
Release Notes:
- N/A