9f21fe2
Futher outline
Nate Butler created
9f21fe2
Futher outline
Nate Butler created
97eae4b
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
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
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
Co-authored-by: Antonio <antonio@zed.dev>
Kirill Bulatov and Antonio created
706dd82
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
Kirill Bulatov created
b871f90
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.
Antonio Scandurra created
385c830
Make each DispatchNode smaller by allocating more
Antonio Scandurra created
d9b0828
Port to gpui2
Kirill Bulatov created
721d761
Add tests
Kirill Bulatov created
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
* 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`
Antonio Scandurra created
3767162
Start port of notification panel
Julia created
a9f817f
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.
Max Brunsfeld created
6f5b106
Fix detection of topmost region under the dragged item
Co-authored-by: Mikayla <mikayla@zed.dev>
Max Brunsfeld and Mikayla created
9cb6f66
WIP
Nate Butler created
39a115b
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
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
Max Brunsfeld created
149e90c
vim2 (#3597)
- MOAR TESTS [[PR Description]] Release Notes: - N/A
Conrad Irwin created
75c1f0e
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
Marshall Bowers created
3779316
Fix scroll tests
For some reason in gpui2, the window contains an extra 59px of space..
Conrad Irwin created
805df4f
Implement welcome view in zed2. (#3599)
Still needs styling.
Max Brunsfeld created
bb5fa6b
Implement welcome view in zed2.
Still needs styling.
Max Brunsfeld created
3120a9c
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
Marshall Bowers created
2d59492
Most tests now...
Conrad Irwin created
e37173f
And some more
Conrad Irwin created
3baf125
All the easy tests?
Conrad Irwin created
050ff6b
Adjust scrollbar track background and border colors (#3596)
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
Marshall Bowers created
d12eb05
vim2 (#3594)
- First round of vim tests Add `observe_keystrokes` back to gpui2 Allow multiple actions to match a given key event [[PR Description]] Release Notes: - (Added|Fixed|Improved) ... ([#<public_issue_number_if_exists>](https://github.com/zed-industries/community/issues/<public_issue_number_if_exists>)).
Conrad Irwin created
1e89092
MOAR TESTS
Conrad Irwin created
303189e
Fix warnings
Conrad Irwin created
e271bbe
Use `editorOverviewRuler.border` for the scrollbar track border
Marshall Bowers created
dfd1b5a
Use the editor background for the scrollbar track background
Marshall Bowers created
aa27e1b
Draw the scrollbar track left border
Marshall Bowers created
927d18b
Add support for resizing splits and docks, as well as utilities (#3595)
Making this PR to upstream changes to util and GPUI2, resizing exists but isn't working yet. Release Notes: - N/A
Mikayla Maki created
cb8109a
Remove some debug styles
Mikayla created
4942b19
Moar tests
Conrad Irwin created
f03c0f6
Add double click handling
Mikayla created
d1805d8
First round of vim tests
Conrad Irwin created
f12510b
Defer drawing the window until the CoreAnimation `displayLayer:` method is called (#3592)
GPUI (both 1 and 2) currently performs rendering, layout, and painting at the end of every effect cycle. This leads to poor performance when the app receives events more frequently than the display refreshes. Such rapid events can come from a terminal, an LSP, or a mouse with a high polling rate. This PR changes GPUI so that we don't render until the OS notifies us that the content will be presented, via the `displayLayer:` callback. Because render, layout, and paint have side effects that are sometimes relied on in tests, we currently keep the old behavior (drawing after every effects cycle) in tests. This is similar to what @ForLoveOfCats explored in https://github.com/zed-industries/zed/pull/3542, but slightly simpler, in that we're not using the display link. As a follow-up, we could use the display link to start rendering earlier, to possibly reduce latency further.
Max Brunsfeld created
41f55e4
Use `tab.inactiveForeground` from VS Code for muted text color (#3593)
This PR updates the `theme_importer` to pull in the `tab.inactiveForeground` color from VS Code to use as the muted text color. Release Notes: - N/A
Marshall Bowers created
fdcb413
Fix unused field warning
Max Brunsfeld created
f02a3e8
Fix inactive tab styles (the verbose way) (#3591)
This PR fixes the inactive tab style to properly show the label using the muted text color. I went about fixing this in the most direct way possible, but the solution leaves a lot to be desired, IMO. I plan to explore some ideas on how we can improve the state of styling the tab content without having the same styles repeated all over the place and subsequently out-of-sync. Release Notes: - N/A
Marshall Bowers created
fbfe108
Avoid double borrow in tests by drawing windows explicitly in `flush_effects`
Co-authored-by: Antonio <antonio@zed.dev>
Max Brunsfeld and Antonio created