5112746
Remove memmove to improve terminal performance
Click to expand commit body
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
5112746
Remove memmove to improve terminal performance
Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
79679cb
Submit bigger primitive batches when rendering (#4087)
Before this change we wouldn't submit all possible primitives of the same kind that are less-than the max order. Result was that we would submit, say, 10 paths each in a separate batch instead of actually batching them. This was overly strict because even if the order of two different primitives was the same, we could have still batched the 1st primitive kind, if its implicit ordering was less than 2nd kind. Example: say we have the following primitives and these orders 5x paths, order 3 2x sprites, order 3 Previously, we would submit 1 path, 1 path, 1 path, 1 path, 1 path, then the sprites. With this changes, we batch the 5 paths into one batch. Release Notes: - Improved performance when rendering lots of selection.
Antonio Scandurra created
5b0b9ff
Submit bigger primitive batches when rendering
Before this change we wouldn't submit all possible primitives of the same kind that are less-than the max order. Result was that we would submit, say, 10 paths each in a separate batch instead of actually batching them. This was overly strict because even if the order of two different primitives was the same, we could have still batched the 1st primitive kind, if its implicit ordering was less than 2nd kind. Example: say we have the following primitives and these orders 5x paths, order 3 2x sprites, order 3 Previously, we would submit 1 path, 1 path, 1 path, 1 path, 1 path, then the sprites. With this changes, we batch the 5 paths into one batch. Co-authored-by: Antonio <antonio@zed.dev>
Thorsten Ball and Antonio created
f6b7a06
Fix missing Ctrl-[ bindings in Vim mode (#4086)
This "adds" the keybindings I was missing in Vim mode (e.g. `Ctrl-[` to cancel a selection) by fixing the definitions in the keymap from `Ctrl+[` to `Ctrl-[`. Release Notes: - Fixed missing `Ctrl-[` keybindings in Vim mode where `Ctrl-[` should act like `Esc` but didn't.
Thorsten Ball created
04922d6
Fix missing Ctrl-[ bindings in Vim mode
This "adds" the keybindings I was missing in Vim mode (e.g. `Ctrl-[` to cancel a selection) by fixing the definitions in the keymap from `Ctrl+[` to `Ctrl-[`.
Thorsten Ball created
0cfec6e
Fix segfault when drawing paths (#4084)
Previously, we were using `size_of` but passing the wrong type in (`MonochromeSprite` instead of `PathSprite`). This caused us to read outside of the `sprites` smallvec and triggered the segfault. This reverts #4078 because I don't think using a `SmallVec` was the issue (it might have masked this problem though, because we would most of the time copy from the stack and not from the heap). With this pull request we are also fixing another potential source of segfaults, due to checking if we exhausted the instance buffer too late when drawing underlines. Release Notes: - Fixed a crash that could happen during rendering.
Antonio Scandurra created
3789e7e
Stop using button for collab notifications (#4085)
Attempts to fix <img width="472" alt="Screenshot 2024-01-16 at 19 41 56" src="https://github.com/zed-industries/zed/assets/2690773/5a8d0691-eabb-4e92-9186-362ca8ef9ca6"> by switching from buttons to labels (so that they can wrap) and adding a background to them, so they are more visible <img width="446" alt="image" src="https://github.com/zed-industries/zed/assets/2690773/bb228aae-0abc-45b4-a0f5-a928a2e64390"> <img width="485" alt="image" src="https://github.com/zed-industries/zed/assets/2690773/b7fa3598-59b8-4a74-97e6-790695e37047"> Release Notes: - N/A
Kirill Bulatov created
39dff0e
Stop using button for collab notifications
Kirill Bulatov created
9c33790
Check if we exhausted the instance buffer prior to copying underlines
This fixes another potential segfault.
Antonio Scandurra created
97bd3e1
Fix segfault caused by wrong size of path sprites bytes length
Previously, we were using `size_of` but passing the wrong type in (MonochromeSprite instead of PathSprite). This caused us to read outside of the `sprites` smallvec and triggered the segfault.
Antonio Scandurra created
80852c3
Add documentation to the new test
Mikayla created
a99ee5e
Fix test failures
Mikayla created
cae35d3
Fix draw helper, add helper traits for selecting groupings of input events
Mikayla created
0ca9f28
Show cursors for remote participants
Conrad Irwin created
1d5b237
Allow leaving calls once project is unshared
Conrad Irwin created
8be798d
Limit number of collaborators in local Facepiles
Conrad Irwin created
db43358
Add some small test code for tracking down this list bug
Mikayla created
26a3f68
Tweak mute indicator positioning (#4080)
This PR tweaks the positioning of the mute indicators so that they cover a little bit less of the avatar: #### Before <img width="305" alt="Screenshot 2024-01-16 at 6 32 51 PM" src="https://github.com/zed-industries/zed/assets/1486634/3f6ad2f4-2c3e-498b-97a4-8b522f3ceda9"> #### After <img width="311" alt="Screenshot 2024-01-16 at 6 26 48 PM" src="https://github.com/zed-industries/zed/assets/1486634/37161557-084d-4b69-b61f-a0958e8e867c"> (It's a bit hard to tell in the screenshot, but there is a gap between the bottom of the indicator and the top of the color ribbon). Release Notes: - N/A
Marshall Bowers created
9cd81ad
Do not reset timer for each reported event (#4079)
Always attempt to flush after the timeout period. Release Notes: - N/A
Joseph T. Lyons created
54dcb1d
Rename variable
Joseph T. Lyons created
0c59f51
Remove `dbg!()`s
Joseph T. Lyons created
00682b8
Do not reset timer for each reported event
Joseph T. Lyons created
391a61c
Play guess who's to blame (#4078)
We're occasionally seeing a crash in MetalRenderer::draw. Looking at the backtrace, it seems almost certainly to be happening in the call to `ptr::copy_nonoverlapping` on line 604 (see `#Don't Panic!` channel notes) As we already have added bounds checking to the destination, it seems most likely (however improbable) that somehow we're getting an invalid Ptr and length from the SmallVec. To try and make progress on this, let's try a Vec for a bit lest there is a subtle issue in SmallVec (though I couldn't spot one). Release Notes: - (maybe) Fixes SEGFAULT in MetalRenderer::draw
Conrad Irwin created
cce3cf1
Play guess who's to blame
Conrad Irwin created
4e8ad36
Increase border width used to indicate speaking (#4077)
This PR increases the width of the border that we use to indicate when a call participant is speaking. This should make it more apparent in the UI when someone is speaking. Release Notes: - Increased the width of the ring used to indicate when someone is speaking in a call.
Marshall Bowers created
c8a6b0d
Enable Channels for everyone (#4058)
[[PR Description]] Release Notes: - Adds Channels, a new mechanism for collaboration. [Read More...](https://zed.dev/blog/channels)
Conrad Irwin created
6bcc97e
channel management fixes (#4066)
- Close modals when focus leaves - Disallow self-management for admins Release Notes: - Fixes changing role of invited channel members
Conrad Irwin created
2e03c84
Add dedicated indicator for showing a muted call participant (#4076)
This PR improves the muted indicators to make it clearer when a call participant is muted. Previously we used a red border color to denote when a participant was muted. Now we render an indicator with an icon to more clearly indicate the participant's muted status: <img width="303" alt="Screenshot 2024-01-16 at 4 05 15 PM" src="https://github.com/zed-industries/zed/assets/1486634/d30fcd84-48e7-4959-b3c4-1054162c6bd6"> Hovering over the indicator will display a tooltip for further explanation: <img width="456" alt="Screenshot 2024-01-16 at 4 05 25 PM" src="https://github.com/zed-industries/zed/assets/1486634/6345846f-196c-47d9-8d65-c8d86e63f823"> This change also paves the way for denoting the deafened status for call participants. Release Notes: - Improved the mute indicator for call participants.
Marshall Bowers created
9903b7a
Add color ribbon for local player (#4075)
This PR adds a color ribbon for the local player in the current call. This fixes the alignment of the local user's avatar so that it lines up with the rest of the collaborators in the call: <img width="307" alt="Screenshot 2024-01-16 at 2 56 04 PM" src="https://github.com/zed-industries/zed/assets/1486634/979ee3fa-70c9-482a-9351-020402ad68b9"> Release Notes: - Added a color ribbon for the local player when in a call.
Marshall Bowers created
ff67d9d
Add font name completions to ui_font_family and terminal::font_family
Piotr Osiewicz created
f011953
Rename all_font_families to all_font_names
Piotr Osiewicz created
ca4a8b2
Rework `Avatar` indicator to be more general-purpose (#4073)
This PR reworks the way we add indicators to `Avatar`s to make them more general-purpose. Previously we had logic specific to the availability indicator embedded in the `Avatar` component, which made it unwieldy to repurpose for something else. Now the `indicator` is just a slot that we can put anything into. Release Notes: - N/A
Marshall Bowers created
d00067c
Switch project search deploy behavior to be isolated to a pane (#4072)
This adjusts the solution in https://github.com/zed-industries/zed/pull/4014 to fix the double-focus issue, allowing each pane's project search to work independently. Release Notes: - Changed the name of the `workspace::DeploySearch` action to `pane::DeploySearch` and changed it's behavior to open a new search OR focus an existing project search in the current pane. (https://github.com/zed-industries/community/issues/2395)
Mikayla Maki created
36ff35f
Change name of deploy action to indicate what scope it operates at
Mikayla created
52267a5
Adjust project search behavior to be isolated to a pane
Mikayla created
3d041f4
Fix overlapping block headers when using custom line height (#4071)
This fixes block headers overlapping over text in the buffer when using
a custom line height of 1.25.
It fixes the issue by making the parent container a v-flex,
vertically-justifying the content and moving from relative padding to
absolute padding for the header itself.
## Before/After
With setting:
```json
"buffer_line_height": {
"custom": 1.25
},
```
### Before

### After

### Release notes
Release Notes:
- Fixed headers in multi-buffers overlapping over content of the buffer
Thorsten Ball created
60b79ef
Prevent content mask breaks from having the same z-index
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia and Antonio Scandurra created
4f25df6
Prevent div background/content/border from interleaving at same z-index
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia and Antonio Scandurra created
62f5bec
Fix rustfmt by pulling out long string into constant
Thorsten Ball created
1cbdf2b
Fix overlapping block headers when using custom line height
This fixes block headers overlapping over text in the buffer when using a custom line height of 1.25. It fixes the issue by making the parent container a v-flex, vertically-justifying the content and moving from relative padding to absolute padding for the header itself. Co-authored-by: antonio <antonio@zed.dev> Co-authored-by: julia <julia@zed.dev> Co-authored-by: marshall <marshall@zed.dev>
Thorsten Ball , antonio , julia , and marshall created
47f2d55
Revert "Use taffy to retrieve the parent for a given layout node" (#4070)
This reverts commit 5904bcf1c20638d63b244a1b2b038ec9a664ba1c. Release Notes: - N/A
Antonio Scandurra created
4e0c8dc
Revert "Use taffy to retrieve the parent for a given layout node"
This reverts commit 5904bcf1c20638d63b244a1b2b038ec9a664ba1c. Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
Julia and Antonio Scandurra created
0bf66e4
Call CGGetActiveDisplayList once to avoid panic (#4069)
This contains two changes in order to hopefully avoid the panic we saw
in #panics:
```
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value'
crates/gpui/src/platform/mac/display.rs:30
<backtrace::capture::Backtrace as core::fmt::Debug>::fmt
<backtrace::capture::Backtrace as core::fmt::Debug>::fmt
Zed::init_panic_hook::{closure#0}
std::panicking::rust_panic_with_hook
std::panicking::rust_panic_with_hook
std::sys_common::backtrace::output_filename
<std::panicking::begin_panic_handler::FormatStringPayload as core::panic::PanicPayload>::take_box
core::panicking::panic_fmt
core::panicking::panic
gpui::platform::mac::display::display_bounds_to_native
<gpui::platform::mac::window::MacWindow as gpui::platform::PlatformWindow>::bounds
<gpui::window::WindowContext>::window_bounds_changed
<gpui::window::Window>::new::{closure#1}
gpui::platform::mac::window::view_did_change_backing_properties
<gpui::platform::mac::platform::MacPlatform as gpui::platform::Platform>::run
Zed::main
<core::marker::PhantomData<core::option::Option<Zed::LocationData>> as serde::de::DeserializeSeed>::deserialize::<&mut serde_json::de::Deserializer<serde_json::read::StrRead>>
workspace::open_new::<Zed::restore_or_create_workspace::{closure#0}::{closure#0}::{closure#0}::{closure#2}::{closure#0}>::{closure#0}::{closure#0}
std::rt::lang_start_internal
serde_json::de::from_trait::<serde_json::read::StrRead, core::option::Option<Zed::Panic>>
```
Two changes:
* Reduce the number of calls to `CGGetActiveDisplayList` in the hopes
that this will also reduce chances of it returning an empty list.
Previously, in the worst case, we called it 6 times. Now the worst case
is that we call it 3 times.
* Instead of calling `CGGetActiveDisplayList` to get the primary display
we do what Chromium does and construct the primary display from
NSScreen.
Release Notes:
- Fixed a bug that caused a panic that could happen when Zed attempted
to render on a sleeping display.
Thorsten Ball created
f938bae
Use NSScreen to fetch primary display
According to Chromium source, `NSScreen::screens` should always get us one display. We made this change because we ran into panics caused by the previous `unwrap()` when `CGGetActiveDisplayList` might return an empty list.
Thorsten Ball created
03bfe3e
Call CGGetActiveDisplayList once to avoid panic
Previously we called CGGetActiveDisplayList twice: once to get the number of displays and then to get the displays. We saw a panic due to no displays being returned here. As a first attempt to fix the panic, we're reducing the amount of calls to CGGetActiveDisplayList and just do one with the trade-off being that we pre-allocate 32 pointers in a Vec.
Thorsten Ball created
ed78f70
Fix previous theme not being applied on startup (#4068)
Fixes `[2024-01-16T09:21:54Z ERROR util] crates/theme/src/settings.rs:172: theme not found: One Light` error from the log after https://github.com/zed-industries/zed/commit/d84785f7e8519b30e474385e5a72f5726cf4783e Release Notes: - N/A
Kirill Bulatov created
0749664
Fix previous theme not being applied on startup
Kirill Bulatov created
ec3cfc3
Adds a way to select items under multiple carets (#4067)
Deals with https://github.com/zed-industries/community/issues/2374 Release Notes: - Added a way to select items under multiple carets with `editor::SelectNext` and `editor::SelectPrevious` commands
Kirill Bulatov created
25abe8f
Fix the tests
Kirill Bulatov created
fbb363e
Add tests
Kirill Bulatov created