Commit Graph
15717 Commits
Author SHA1 Message Date
Julia 2e00da5a79 zed2 notification panel (#3603)
Release Notes:

- N/A
2023-12-12 18:04:47 -05:00
Joseph T. Lyons 5f5b86ee24 Use release channel display name for feedback (#3615)
Release Notes:

-  N/A
2023-12-12 17:50:29 -05:00
JuliaandConrad Irwin 29413bc72c Fix defer handle double lease
Co-Authored-By: Conrad Irwin <conrad@zed.dev>
2023-12-12 17:47:12 -05:00
Joseph T. Lyons a63b4c598c Use release channel display name for feedback 2023-12-12 17:29:37 -05:00
Julia 51ceb52931 Fix borked layout 2023-12-12 17:22:49 -05:00
Joseph T. Lyons c9aa4a0e00 Fix placeholder text 2023-12-12 16:56:43 -05:00
Marshall Bowers e489e2e583 Enable scrolling in tab bar (#3614)
This PR enables scrolling horizontally in the tab bar.

Currently this requires holding down <kbd>Shift</kbd> for the scroll to
activate. We'll need to look into this.

Scrolling also currently works when there is a split in the editor, as
the non-split view goes down a different rendering path that does not
constrain the pane width, which breaks a number of things.

Release Notes:

- N/A
2023-12-12 16:38:25 -05:00
Julia 01d4e711d8 Get notifications rendering in panel 2023-12-12 16:31:26 -05:00
Julia d3eff6371e Panel showing up 2023-12-12 16:14:43 -05:00
Marshall Bowers d2feaa41a5 Extract TabBar component (#3613)
This PR extracts a new `TabBar` component from the tab bar
implementation in the workspace.

Release Notes:

- N/A
2023-12-12 15:50:05 -05:00
Max Brunsfeld 31a4892a55 Avoid notifying editor when wrap width changes (#3612)
Wrap width is already assigned from within draw. It can be called
multiple times as taffy iteratively computes the layout.

This fixes a hang we were seeing in nightly when opening the chat panel.
2023-12-12 12:32:05 -08:00
Max BrunsfeldandNathan f5ca514bf0 Avoid notifying editor when wrap width changes
Wrap width is already assigned from within draw. It can be called multiple
times as taffy iteratively computes the layout.

Co-authored-by: Nathan <nathan@zed.dev>
2023-12-12 12:06:38 -08:00
Piotr Osiewicz 2a22208518 Project search2 tests (#3611)
Release Notes:

- N/A
2023-12-12 19:35:15 +01:00
Max Brunsfeld b3e1514b00 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 52e72d9648 Builds and runs 2023-12-12 13:07:17 -05:00
Max Brunsfeld e3ed3b8c1c Avoid caching zed build script if git state has changed 2023-12-12 09:55:56 -08:00
Julia fd6320b136 Finish fixing up Avatar using URI 2023-12-12 11:49:04 -05:00
JuliaandAntonio Scandurra 44d40625fe Start changing Avatar to use URI
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2023-12-12 11:27:40 -05:00
Piotr Osiewicz cc97b04627 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 a334a21f3e 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 c0846d6f74 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 13f9fec0bd fixup! Move away from using cx.dispatch_action in buffer search 2023-12-12 16:38:58 +01:00
Piotr Osiewicz be57059195 Move away from using cx.dispatch_action in buffer search 2023-12-12 16:36:00 +01:00
Antonio Scandurra b87c45e6f5 Set cursor style only if we're the active window 2023-12-12 16:32:45 +01:00
Kirill Bulatov 4684440202 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 0140bb862e Fix the tests
Co-authored-by: Antonio <antonio@zed.dev>
2023-12-12 17:19:12 +02:00
Kirill Bulatov ca8e8d1065 Finish removing all dangerous focus APIs 2023-12-12 16:11:14 +02:00
Antonio Scandurra 97eae4b081 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 6159a59534 Fix assertions now that we use different hash functions 2023-12-12 14:59:51 +01:00
Kirill BulatovandAntonio 2cde1a2e15 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 1c437a2b92 Register buffer search listener on new workspaces and not editors 2023-12-12 14:23:52 +01:00
Kirill Bulatov 717b2885f8 Attempt to remove the dangeous element focus API 2023-12-12 15:07:27 +02:00
Antonio Scandurra 43b8d65fee Transfer focus to the workspace when window focus is lost 2023-12-12 15:07:27 +02:00
Kirill BulatovandAntonio 137104e00e 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 706dd8246e 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 b871f906d6 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 385c830bef Make each DispatchNode smaller by allocating more 2023-12-12 13:16:09 +01:00
Kirill Bulatov d9b0828beb Port to gpui2 2023-12-12 13:50:23 +02:00
Kirill Bulatov 721d7615c3 Add tests 2023-12-12 13:34:46 +02:00
Antonio Scandurra f312c58b30 Reduce the stack size of Interactivity at the cost of more allocations 2023-12-12 11:57:44 +01:00
Kirill Bulatov 27d6432c84 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 e7094cc98d Don't move interactivity unnecessarily during layout 2023-12-12 09:43:33 +01:00
Antonio Scandurra b503edf24f Avoid cloning entries in CollabPanel::render_signed_in 2023-12-12 09:42:35 +01:00
Julia 376716254f Start port of notification panel 2023-12-11 20:40:48 -05:00
Max Brunsfeld a9f817fc14 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 6f5b1064ee Fix detection of topmost region under the dragged item
Co-authored-by: Mikayla <mikayla@zed.dev>
2023-12-11 16:50:44 -08:00
Marshall Bowers 39a115b264 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 cbce49ff68 Start work on dragging entries in the project panel 2023-12-11 15:52:58 -08:00
Max Brunsfeld a208229a2c Use Box instead of Rc for List event handlers 2023-12-11 15:52:06 -08:00
Conrad Irwin 149e90c3d9 vim2 (#3597)
- MOAR TESTS

[[PR Description]]

Release Notes:

- N/A
2023-12-11 16:42:03 -07:00