Commit log

4a95347 zed 0.119.10

Joseph T. Lyons created

9a98405 Merge branch 'main' into v0.119.x

Joseph T. Lyons created

df67917 Make channel buttons square (#4092)

Click to expand commit body
This PR makes the channel buttons square.

Release Notes:

- Adjusted the shape of the channel buttons.

Marshall Bowers created

19c488b Add the `color` crate (#4063)

Click to expand commit body
This PR adds the `color` crate, which will be the home of a number of
color-related utilities, and also acts as an interface between
[`palette`](https://crates.io/crates/palette) and the way `gpui` colors
work.

The goal of this crate is to centralize color utilities like mixing and
blending, building color ramps and sets of colors for state and more.

## Todo:

- [x] hex -> Color
- [x] Color mixing
- [x] Color blending using blend modes (overlay, multiply, etc)
- [ ] ~~Build color ramp from color~~
- [x] Build state set from color
- [ ] ~~Update Theme to use the color crate~~

Release Notes:

- None (Internal changes: Adds the `color` crate for working with
colors.)

Nate Butler created

4cdcac1 Update docs

Nate Butler created

9c557aa Fix regression of welcome screen background color (#4091)

Click to expand commit body
In #3910 we made the welcome screen use the same background color as the
editor.

However, this later regressed in
cdd5cb16ed896b2ee3bbb041983ee7cb812f6991.

This PR fixes that regression and restores the correct color for the
welcome page.

Release Notes:

- Fixed the background color of the welcome screen.

Marshall Bowers created

e2788f1 Limit number of collaborators in local Facepiles (#4083)

Click to expand commit body
Release Notes:

- Improves the rendering of the facepile in the titlebar with many
people

Conrad Irwin created

6566445 Allow leaving calls once project is unshared (#4081)

Click to expand commit body
Release Notes:

- Fixes a bug where you could not use call controls after a project was
unshared

Conrad Irwin created

2fbf42d Z index shenanigans (#4089)

Click to expand commit body
Release Notes:

- Fixed a bug allowing certain UI elements to render incorrectly when
overlapping.

Julia created

a601e96 Style collab notifications properly

Kirill Bulatov created

21ceb14 Remove memmove to improve terminal performance (#4088)

Click to expand commit body
This removes the terminal performance slightly by removing memmoves that
aren't needed after inlining a call.

It also removes a possibly unnecessary `String` allocation.

Release Notes:

- Improved terminal rendering performance by reducing allocations and
memory operations.

Thorsten Ball created

977832a Refresh window, bypassing view cache, when opening hover or context menu

Julia created

5112746 Remove memmove to improve terminal performance

Click to expand commit body
Co-authored-by: Antonio <antonio@zed.dev>

Thorsten Ball and Antonio created

79679cb Submit bigger primitive batches when rendering (#4087)

Click to expand commit body
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

Click to expand commit body
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)

Click to expand commit body
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

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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

Click to expand commit body
This fixes another potential segfault.

Antonio Scandurra created

97bd3e1 Fix segfault caused by wrong size of path sprites bytes length

Click to expand commit body
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

1d5b237 Allow leaving calls once project is unshared

Conrad Irwin created

8be798d Limit number of collaborators in local Facepiles

Conrad Irwin created

26a3f68 Tweak mute indicator positioning (#4080)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
[[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)

Click to expand commit body
- 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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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)

Click to expand commit body
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

![screenshot-2024-01-16-16 48
48@2x](https://github.com/zed-industries/zed/assets/1185253/8c3b977e-333f-403c-a4d3-0911f3fac5e0)

### After

![screenshot-2024-01-16-16 50
13@2x](https://github.com/zed-industries/zed/assets/1185253/2d854eba-c4c4-4bce-b60b-dd250856b08f)

### 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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
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

df96b64 zed 0.119.9

Joseph T. Lyons created

b0a1e25 Merge branch 'main' into v0.119.x

Joseph T. Lyons created

47f2d55 Revert "Use taffy to retrieve the parent for a given layout node" (#4070)

Click to expand commit body
This reverts commit 5904bcf1c20638d63b244a1b2b038ec9a664ba1c.

Release Notes:

- N/A

Antonio Scandurra created