Commit log

41ac8ef Restore saving (#3351)

Click to expand commit body
and a bunch of random workspace stuff!

Release Notes:

-

Mikayla Maki created

1693718 Merge branch 'main' into saving-2

Mikayla created

9a3cd07 Restore a bunch of random workspace stuff

Mikayla created

2fb13cf Separate WrappedLines from ShapedLines (#3350)

Click to expand commit body
ShapedLines are never wrapped, whereas WrappedLines are optionally
wrapped if they are associated with a wrap width. Originally, when
rewriting GPUI, I tried to combine everything because wrapping is
inherently optional for the Text element, but we have a bunch of APIs
that don't make sense on a line that may wrap, so we need a distinct
type for that case.

This is a precursor to implementing clickable links in markdown. I
noticed multiple places where we were confused about whether or not the
line was wrapped so this felt important.

Release Notes:

- N/A

Nathan Sobo created

391ab8f Add more detail to panel switcher interaction (#3344)

Click to expand commit body
Also featuring:
* IconButton#action()
* gpui::ManagedView
* `menu_handle()`

Release Notes:

- N/A

Conrad Irwin created

9558da8 Separate WrappedLines from ShapedLines

Click to expand commit body
ShapedLines are never wrapped, whereas WrappedLines are optionally wrapped if
they are associated with a wrap width. I tried to combine everything because
wrapping is inherently optional for the Text element, but we have a bunch of
APIs that don't make sense on a line that may wrap, so we need a distinct type
for that case.

Nathan Sobo created

2d1d75f +ManagedView

Click to expand commit body
And some games with rust traits

Conrad Irwin created

2182cb2 Ooh generics

Conrad Irwin created

6d4276e Merge branch 'main' into collab_ui2

Conrad Irwin created

c0ad157 More attachment configuration for context menus

Conrad Irwin created

e67c44a Fix file-reloading race condition (#3348)

Click to expand commit body
### Summary

This PR fixes a bug that @as-cii and @osiewicz saw when the on-disk
contents of files changed due to running `git checkout` at the command
line. It caused a buffer's contents to diverge from the file's on disk
contents, but the buffer to show an *unmodified* status.

I've also introduced new APIs on gpui's deterministic executor, which
make it possible to write a test that reliably triggered the bug.

### Details

The bug is triggered by the following sequence of events:
1. A buffer's file changes on disk while the buffer is *unmodified*
2. Zed reloads the new content of the file
3. Before updating the buffer itself, Zed computes a *diff* between the
buffer's current contents, and the newly-loaded contents
4. While this diff is being computed, one of two things happens:
     1. the buffer changes on-disk *again*.
2. the user edits the buffer, but undoes the edit, so that the buffer
returns to an unmodified state

The bug itself was caused by a few things:
* The buffer diffing algorithm is pretty slow, because we perform a
character-wise diff
* We previously allowed multiple reload tasks to run concurrently
* When discarding an out-of-date diff, we failed to update parts of the
buffer's state (`saved_fingerprint`) which allow us to recognize that
the buffer's content differs from the file.

It was also difficult to reproduce the problem in tests, because under
deterministic execution, because it was extremely unlikely for other
tasks to make progress *after* a file had been reloaded, but *before*
the disk task has resolved. To help with testing, I introduced a pair of
executor APIs:

`spawn_labeled`, - for spawning a background task with a given *label*
`deprioritize_task` - for forcing tasks with a given label to run
*after* all other concurrent tasks.

I also made the `Model::next_event` test helper method more useful, in
that it no longer runs *until* parked in order to wait for the next
event to occur. It just steps the executor one poll at a time until the
model emits an event.

Release Notes:

- Fixed a bug that caused buffers to report incorrect modified/conflict
status when their buffers changed on disk multiple times in rapid
succession.

Max Brunsfeld created

32979f3 Rename deprioritize_task -> deprioritize

Click to expand commit body
It applies to a family of tasks, not a task.

Max Brunsfeld created

f3b6719 Rename both PlatformDispatcher::poll and Executor::run_step to 'tick'

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

Max Brunsfeld and Nathan Sobo created

9547e88 TEMP

Conrad Irwin created

5478889 Add storybook3

Conrad Irwin created

61bd6ba Actions‽ (#3349)

Click to expand commit body
This PR re-implements our actions with macros instead of a blanket impl.

Release Notes:

- N/A

Mikayla Maki created

432572c #RemoveThe2

Mikayla created

17b2b11 Don't update file's saved mtime when reload is aborted

Max Brunsfeld created

49d3e1c Add default derive

Mikayla created

4de2c0f Re-implement actions as derive macros instead of blanket impls

Mikayla created

0bed5e4 Port buffer reload bug fixes back to gpui1 crates

Max Brunsfeld created

5f1acae Fix race conditions and bugs in Buffer::reload

Max Brunsfeld created

89d73f7 Label the buffer's diff task so it can be deprioritized in tests

Max Brunsfeld created

b2451d9 Combine adjacent edits in buffer's diff

Max Brunsfeld created

074a221 Progress on ContextMenu

Conrad Irwin created

f9650b3 Don't run until all the way until parked when waiting for a model's next event

Max Brunsfeld created

6397c05 Add the ability to deprioritize specific labeled tasks in tests

Max Brunsfeld created

9456f71 Only send one right click event

Conrad Irwin created

83dfb19 UI size + other theme refinements (#3347)

Click to expand commit body
[[PR Description]]

- Fixes bad titlebar states when the ui scale is set very low
- Tidies up a number of workspace styles

Release Notes:

- N/A

Nate Butler created

3223e21 Add dock borders

Nate Butler created

9c5f580 Use `Selected` for active IconButtons

Nate Butler created

3d8e63b Buttons should always use `cursor_pointer`

Nate Butler created

c2d6d24 Ensure the titlebar stays large enough even with small ui sizes

Nate Butler created

a526f23 Add ui_font settings and set default rem size accordingly (#3346)

Click to expand commit body
[[PR Description]]
- Adds ui_font_family, ui_font_features, ui_font_size to settings and
default settings
- Use the new ui font settings to set the rem size when the workspace is
created.

Release Notes:

- N/A

Nate Butler created

267e074 Checkpoint, MenuHandle can open one

Conrad Irwin created

ffd092a Add ui_font_* for tests

Nate Butler created

fa9f4a9 Init rem_size in the workspace at the start of the render

Click to expand commit body
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>

Nate Butler and Mikayla Maki created

a0e9765 Salvage old distributed slice code

Mikayla created

08dddf0 Revert change to default buffer font size

Nate Butler created

b559bfd Parameterize `theme2::init` to allow loading just the base theme (#3345)

Click to expand commit body
This PR adds a parameter to the `theme2::init` method to indicate what
the theme-loading behavior should be.

This allows us to indicate when we want to load all of the additional
built-in user themes (like in the Zed binary and in the storybook), and
when we don't want to load the user themes (like in tests).

We're using an enum over just a `bool` here for clarity at the call
site.

Release Notes:

- N/A

Marshall Bowers created

f8b91bd Fix some of the warnings

Piotr Osiewicz created

d782426 Dismiss tooltips on click

Conrad Irwin created

4540f04 Add more detail to panel switcher interaction

Conrad Irwin created

38d0fdc Remove todo

Click to expand commit body
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>

Nate Butler and Marshall Bowers created

b2f9c45 Change the default buffer font size to 16

Click to expand commit body
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>

Nate Butler and Marshall Bowers created

c71e522 Allow users to set UI font properties in their settings

Click to expand commit body
Co-Authored-By: Marshall Bowers <1486634+maxdeviant@users.noreply.github.com>

Nate Butler and Marshall Bowers created

6b6a30c Merge branch 'main' into search2

Piotr Osiewicz created

2aa7c6f Add a simple context menu into terminal2 (#3343)

Click to expand commit body
Release Notes:

- N/A

Kirill Bulatov created

ab0a3f1 Add an actual context menu into terminal-2

Click to expand commit body
(click the text, not the pane!)

Co-Authored-By: Piotr <piotr@zed.dev>

Kirill Bulatov and Piotr created

c08ce1c Start rendering autocompletion menu

Antonio Scandurra created