Commit Graph
25009 Commits
Author SHA1 Message Date
Piotr Osiewicz 1f41d576b5 Project search2 tests (#3611)
Release Notes:

- N/A
2023-12-12 19:35:15 +01:00
Max Brunsfeld 548fe3e80e Avoid caching zed build script if git state has changed (#3610)
@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.
2023-12-12 10:27:57 -08:00
Julia 370706d316 Builds and runs 2023-12-12 13:07:17 -05:00
Max Brunsfeld 0079a957a6 Avoid caching zed build script if git state has changed 2023-12-12 09:55:56 -08:00
Julia a01f72d521 Finish fixing up Avatar using URI 2023-12-12 11:49:04 -05:00
Antonio Scandurra 0c6c660e0a Fix Div::active not working
Somehow a condition got inverted and caused the bug.
2023-12-12 17:40:22 +01:00
Antonio Scandurra ca481bb0f6 Remove focus_listeners from Interactive
We're not using these anymore.
2023-12-12 17:39:07 +01:00
JuliaandAntonio Scandurra b61fa83cb3 Start changing Avatar to use URI
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-12 11:27:40 -05:00
Piotr Osiewicz 99fcd45f9e Buffer search channel notes (#3608)
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
2023-12-12 17:09:37 +01:00
Marshall Bowers f2aa6c6f1c Prevent panes from overflowing the window (#3609)
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
2023-12-12 11:01:49 -05:00
Antonio Scandurra a2f5097358 Set cursor style only if we're the active window (#3607)
Release Notes:

- N/A
2023-12-12 16:56:32 +01:00
Piotr Osiewicz ecce2e48c1 fixup! Move away from using cx.dispatch_action in buffer search 2023-12-12 16:38:58 +01:00
Piotr Osiewicz 5a35839697 Move away from using cx.dispatch_action in buffer search 2023-12-12 16:36:00 +01:00
Antonio Scandurra 820a43e39a Set cursor style only if we're the active window 2023-12-12 16:32:45 +01:00
Kirill Bulatov 4c8f543246 Fix focus issues with gpui2 docks (#3606)
* 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
2023-12-12 17:26:39 +02:00
Kirill BulatovandAntonio ff21b5f5a6 Fix the tests
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 17:19:12 +02:00
Kirill Bulatov 48dee63c02 Finish removing all dangerous focus APIs 2023-12-12 16:11:14 +02:00
Nate Butler e0cee7ca58 Futher outline 2023-12-12 09:10:12 -05:00
Antonio Scandurra 902fb9680b Improve rendering performance in gpui2 (#3605)
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
2023-12-12 15:09:43 +01:00
Antonio Scandurra 14cbf5968d Fix assertions now that we use different hash functions 2023-12-12 14:59:51 +01:00
Kirill BulatovandAntonio d31adc141c Re-focus window on workspace on corresponding window blur
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:36:20 +02:00
Piotr Osiewicz fd9315d817 Register buffer search listener on new workspaces and not editors 2023-12-12 14:23:52 +01:00
Kirill Bulatov 7e865610fc Attempt to remove the dangeous element focus API 2023-12-12 15:07:27 +02:00
Antonio Scandurra 0b6e87f602 Transfer focus to the workspace when window focus is lost 2023-12-12 15:07:27 +02:00
Kirill BulatovandAntonio 7645ba39ab Fix dock panels not focusing their contents on toggle
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 15:07:27 +02:00
Kirill Bulatov d47c82c06b Improve project panel autoreveal ergonomics (#3604)
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
2023-12-12 14:37:30 +02:00
Antonio Scandurra 69f38a3c50 Use FxHashMap and FxHashSet in hot code paths
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.
2023-12-12 13:35:22 +01:00
Antonio Scandurra 877d051668 Make each DispatchNode smaller by allocating more 2023-12-12 13:16:09 +01:00
Kirill Bulatov d905d9c07f Port to gpui2 2023-12-12 13:50:23 +02:00
Kirill Bulatov e98a2d9e63 Add tests 2023-12-12 13:34:46 +02:00
Antonio Scandurra 0c52e35c8b Reduce the stack size of Interactivity at the cost of more allocations 2023-12-12 11:57:44 +01:00
Kirill Bulatov ab027aa72e Rework the way project panel auto reveals entries
* 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)
2023-12-12 11:38:51 +02:00
Antonio Scandurra fc71de08a4 Don't move interactivity unnecessarily during layout 2023-12-12 09:43:33 +01:00
Antonio Scandurra 598188e488 Avoid cloning entries in CollabPanel::render_signed_in 2023-12-12 09:42:35 +01:00
Julia 3f0c2f0319 Start port of notification panel 2023-12-11 20:40:48 -05:00
Max Brunsfeld 2fd0f453f3 Allow dragging and dropping files in the project panel (#3602)
Also, fix a bug that prevented drag and drop from working in the collab
panel.
2023-12-11 17:03:07 -08:00
Max BrunsfeldandMikayla f95d8796ce Fix detection of topmost region under the dragged item
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-12-11 16:50:44 -08:00
Nate Butler eb814b6f2a WIP 2023-12-11 19:17:13 -05:00
Marshall Bowers 9d79921f6e Take a first pass at styling the welcome screen (#3601)
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
2023-12-11 19:06:33 -05:00
Max Brunsfeld 376b8ae82d Start work on dragging entries in the project panel 2023-12-11 15:52:58 -08:00
Max Brunsfeld a6f43a3e2c Use Box instead of Rc for List event handlers 2023-12-11 15:52:06 -08:00
Conrad Irwin 4e9d0f48fb vim2 (#3597)
- MOAR TESTS

[[PR Description]]

Release Notes:

- N/A
2023-12-11 16:42:03 -07:00
Marshall Bowers 88cc0307cb Add w_vw and h_vh to StyledExt for setting sizes in viewport units (#3600)
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
2023-12-11 18:19:11 -05:00
Conrad Irwin 84bb006d3e Fix scroll tests
For some reason in gpui2, the window contains an extra 59px of space..
2023-12-11 16:12:17 -07:00
Max Brunsfeld a2891993be Implement welcome view in zed2. (#3599)
Still needs styling.
2023-12-11 14:54:03 -08:00
Max Brunsfeld d49d4d2b1e Implement welcome view in zed2.
Still needs styling.
2023-12-11 14:48:42 -08:00
Marshall Bowers 147a49d00a theme_importer: Fall back to inactive tab background if no active tab background set (#3598)
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
2023-12-11 17:39:46 -05:00
Conrad Irwin daf7ea9b69 Most tests now... 2023-12-11 15:25:30 -07:00
Conrad Irwin d62a6bd531 And some more 2023-12-11 15:14:13 -07:00
Conrad Irwin 60dab800f0 All the easy tests? 2023-12-11 15:13:11 -07:00