Commit log

7ff6c2d zed 0.119.16

Joseph T. Lyons created

5b34b77 Merge branch 'main' into v0.119.x

Joseph T. Lyons created

2bfbd72 Remove unused import? (#4201)

Click to expand commit body
Release builds are currently failing:
https://github.com/zed-industries/zed/actions/runs/7616903969/job/20744857084

It is unclear to me why debug builds are not.

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

2445df8 Remove unused import?

Conrad Irwin created

c5465d2 Fix panel deserialization (#4198)

Click to expand commit body
In the old world, panel loading happened strictly before workspace
deserialization. Now it's inverted.

Fix this by storing on the dock the serialized state so they can restore
state as panels are loaded.

[[PR Description]]

Release Notes:

- Fixed Zed forgetting which panels were open on boot.
([#2406](https://github.com/zed-industries/community/issues/2406)).

Conrad Irwin created

36a8bbf Fix panel deserialization

Click to expand commit body
In the old world, panel loading happened strictly before workspace
deserialization. Now it's inverted.

Fix this by storing on the dock the serialized state so they can restore
state as panels are loaded.

Conrad Irwin created

a1c4716 Potential fix for #2422 (#4197)

Click to expand commit body
- it seems like layer.drawable_size() is 0,0 in metal_renderer.rs:189 
- we set this in two places:
    - in response to a CALayerDelegate setFrameSize: event
- in response to a CALayerDelegate viewDidChangeBackingProperties:
event.
- it looks like if we don't set it in either of these cases we get a
different failure mode: the view is zoomed just wrong.
- That said, I can reproduce the screenshot if .scale_factor() returns
0.
- This might happen if [nativeWindow screen] is nil, which happens when
the window is off screen.
    - possible that zed started with offscreen window?
- I would expect that viewDidChangeBackingProperties would fire when
that changed.
    - potential fix: default to 2.0

Release Notes:

- Fixed Zed occasionally rendering blank on laungh
([#2422](https://github.com/zed-industries/community/issues/2422)).

Conrad Irwin created

e896941 Fix certain hovers being cut off (#4196)

Click to expand commit body
Release Notes:

- Fixes a bug where the bottom of hover popovers would be cut off
([#2434](https://github.com/zed-industries/community/issues/2434)).

Mikayla Maki created

72cb865 jk (#4189)

Click to expand commit body
Add support for mapping `jk` to escape in vim mode.

This changes the behaviour of the keymatches when there are pending
matches.

Before: Even if there was a pending match, any complete matches would be
triggered and the pending state lost.

After: If there is a pending match, any complete matches are delayed by
1s, or until more keys are typed.

Release Notes:

- Added support for mapping `jk` in vim mode
([#2378](https://github.com/zed-industries/community/issues/2378)),
([#176](https://github.com/zed-industries/community/issues/176))

Conrad Irwin created

9d221a1 Z index with flicker fix (#4170)

Click to expand commit body
Part of `was_top_layer` was checking if a opaque level starts with the
current stacking order, but now that each entry in the order has an id,
those comparison checks were failing as every entry generated is now
unique

I'll admit I'm still a little fuzzy on the specific reasons for this
function to be defined as it is so I'd appreciate another set of eyes

Release Notes:

- N/A

Julia created

41a99c6 Potential fix for #2422

Conrad Irwin created

6419df8 Fix certain hovers being cut off

Mikayla created

942edbf Run tests even if lint/fmt/spell/squawk fails

Conrad Irwin created

c494777 TYPO

Conrad Irwin created

0903d29 Improve logic for reused bindings, add docs.

Conrad Irwin created

3b3252b Rewrote and documented `was_top_layer` logic

Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>

Julia and Antonio Scandurra created

455d5ee Preserve stacking order ID order when reusing cached view state

Click to expand commit body
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>

Julia and Antonio Scandurra created

6c4d024 TYPO

Conrad Irwin created

c5d7c8e Fix cmd-k left

Conrad Irwin created

831769c Ignore stacking order entry ids in `was_top_layer`

Julia created

2c3d980 Store a z-index id per-layer

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Julia and Nathan Sobo created

7ec4f22 de-dbg!

Conrad Irwin created

5b906e7 Fix lightning bolt hover and git gutter mark overlapping (#4195)

Click to expand commit body
Bumps `gutter_padding_factor` from 3.5 to 4.0 due git mark on the gutter
becoming much thicker than in Zed1:
 
Current:

![current_zed_2](https://github.com/zed-industries/zed/assets/2690773/f7f0f76b-63a2-4790-a4f4-ca791b617a64)

Fixed:

![new_zed2](https://github.com/zed-industries/zed/assets/2690773/0075567d-e661-4140-8ffa-ec17d72f8e54)

Stable (no hover background appearing):

![zed_1](https://github.com/zed-industries/zed/assets/2690773/c3366845-b763-46f7-a2c7-48dd72dc4f10)

Release Notes:

- Fixed gutter marks overlapping with hover highlights

Kirill Bulatov created

7aa3d9d Fix lightning bolt hover and git gutter mark overlapping

Kirill Bulatov created

b5cb832 lsp-log: Reemit Editors search events.

Click to expand commit body
NextMatch/PreviousMatch did not work due to us not updating the match index in the buffer search (that relied on an event being emitted).

Piotr Osiewicz created

426ef75 Show diagnostics on hover (#4192)

Click to expand commit body
Fixes https://github.com/zed-industries/community/issues/2426

Release Notes:

- Fixed a bug that was preventing diagnostics from being shown on hover.

Antonio Scandurra created

f76a250 Show diagnostics on hover

Antonio Scandurra created

4312c7d Introduce `ZED_MEASUREMENTS=1` and `script/histogram` (#4191)

Click to expand commit body
With this pull request, we're introducing a `ZED_MEASUREMENTS` variable
which is used by the `measure` function to print to stderr how long it
took to execute a given closure. This is used right now to measure frame
time when a new frame is requested. This data can be plotted as a
histogram via `script/histogram`.

Here's a workflow I typically use:

- Run `export ZED_MEASUREMENTS=1`
- Checkout a commit that you want to measure the performance of
- Run zed in release mode and use it for 5-10 seconds
- Copy the printed measurements into a file, say `version-a`
- Checkout another commit that you want to measure the performance of
- Run zed in release mode and use it for 5-10 seconds
- Copy the printed measurements into a file, say `version-b`
- Run `script/histogram version-a version-b` (note that you can supply
however many files you want)

Release Notes:

- N/A

Antonio Scandurra created

de64de2 Introduce a `ZED_MEASUREMENTS` env var and use it to measure frame time

Antonio Scandurra created

10ca33c Introduce script/histogram to produce before/after comparisons

Antonio Scandurra created

2c737a1 Resize Nightly icons to same scale as Stable/Preview (#4179)

Click to expand commit body
I'm sure @iamnbutler can do a better job here, this is just hacky, but
the size of the icon when doing `Cmd+tab` has been bugging me, so I
thought I'd resize them quickly to the dimensions the Stable/Preview
icons have.

Release Notes:

- N/A

Thorsten Ball created

b9c7baf Merge remote-tracking branch 'origin/main' into jk

Conrad Irwin created

4143d3a Work on tests

Conrad Irwin created

9bcf27b WIP: Refactor out ElementContext from WindowContext (#4166)

Click to expand commit body
During the doc parties, I've sometimes struggled with how and where to
describe the high level intention behind various APIs that are available
in GPUI. Fortunately, rust doc has a tool for this: Module level
documentation. However, writing this kind of documentation for the
`WindowContext` is difficult, as it bundles up the nice, high level GPUI
APIs for entity management and view rendering, with all of the low level
imperative APIs that `Element`s use to draw to the screen. Splitting
these apart into an `ElementContext`, which contains a `WindowContext`,
gives us a way to corral the element systems into their own API and
module, allowing us to document the Element system on it's own terms,
and enforce the correct usage of our APIs, and helps people who are
exploring our APIs through autocomplete to not be overloaded with
non-applicable methods.

Release Notes:

- N/A

Mikayla Maki created

b65cae5 Moved Frame struct into element context, to be close to it's associated methods

Mikayla created

c05edee Port the rest of the app

Mikayla created

df4566f Refactor out element context from GPUI

Mikayla created

9d261cf Merge branch 'main' into jk

Conrad Irwin created

8c541b4 Comment out tests for nwo

Conrad Irwin created

b06e2eb Update handling of 'pending' keys

Click to expand commit body
Before this change if you had a matching binding and a pending key,
the matching binding happened unconditionally.

Now we will wait a second before triggering that binding to give you
time to complete the action.

Conrad Irwin created

2f99586 Do an initial pass on refactoring out ElementContext from WindowContext

Mikayla created

a8990ba Document more gpui (#4187)

Click to expand commit body
Also add several `TODO!(docs)` comments to places that need more
feedback.

Release Notes:

- N/A

Mikayla Maki created

118a346 Restore erronously removed APIs

Mikayla created

660a391 Fix typos, mark docs related todos in GPUI

Mikayla created

aa57a4c Document / lockdown more of GPUI

Mikayla created

7d1cb8b Dont group chat messages after certain period of time (#4186)

Click to expand commit body
<img width="447" alt="SCR-20240121-ofhg"
src="https://github.com/zed-industries/zed/assets/19867440/7fe13a74-45c7-43ec-a5e8-5127bc285b32">

In this screenshot, the first two messages were sent back-to-back, but
the third message was sent nearly two hours later. Coalescing the
messages doesn't feel right after a certain period of time, as it gives
misleading timestamps on messages. Discord has this feature, but I'm not
sure what the value they use is. I've set the threshold to 5 minutes for
now.

<img width="480" alt="SCR-20240121-oghs"
src="https://github.com/zed-industries/zed/assets/19867440/ee1cfe36-7c13-4072-9f66-93e2de6542f1">

Release Notes:

- Improved the grouping of chat messages from same user. Grouping now
only occurs if the user sends multiple messages, in succession, within a
specified duration of time.

Joseph T. Lyons created

24f6c43 Dont group messages after certain period of time

Joseph T. Lyons created

06a325d Fix chat timestamps (#4185)

Click to expand commit body
A user was not seeing the "yesterday" text in their chat timestamps for
messages right before the midnight boundary

Release Notes:

- Fixed bugs in formatting of chat timestamps

Joseph T. Lyons created

4580172 Fix chat timestamps

Joseph T. Lyons created

b8ed83a Refactor key dispatch to work in terms of bindings

Conrad Irwin created