Commit log

2759ed4 An attempt to ignore git regularly

Kirill Bulatov created

8180938 Fix most of the TODOs

Kirill Bulatov created

6028cd9 Retract back to original scanning strategy

Click to expand commit body
Do not descend into ignored directories, to avoid tracking their state.

Kirill Bulatov created

906db58 Defer ignored dirs scanning

Kirill Bulatov created

30fefa0 Use a better name

Kirill Bulatov created

5f46897 Fix some of the old tests

Kirill Bulatov created

d3ce82e Fix the new test

Kirill Bulatov created

cafeba1 Exclude ignored opened buffers from search

Kirill Bulatov created

ce2cfc6 Fix the ! bug, better test draft

Kirill Bulatov created

26f7e66 Add default scan excluded files settings

Kirill Bulatov created

c52fe2f Move toggle ignored button into include directories editor

Kirill Bulatov created

9373d38 Rescan worktree on scan exclusions settings change

Kirill Bulatov created

1612c90 More lenient file path matchers

Kirill Bulatov created

b8be720 Fix the bugs

Kirill Bulatov created

126e4cc Scan all ignored files by default now

Kirill Bulatov created

401f85b Properly ignore elements from configured exceptions

Kirill Bulatov created

9072e5a Properly set ignore stacks and is_ignored values

Kirill Bulatov created

7d97dfa Test and filter data draft

Kirill Bulatov created

a5c615c Pass a new query parameter into the search

Kirill Bulatov created

eb04160 Dock menu

Conrad Irwin created

9d742b9 Allow you to click on a context menu item

Conrad Irwin created

5cf953d Add error messages to server deployment for nightly

Mikayla created

17d53d0 Rename again, add fun cx APIs using new traits

Mikayla created

01d9d53 Adjust the type arrangement on ManagedViews

Mikayla created

8837045 Fix underspecified assertions in new tests for file reload race (#3353)

Click to expand commit body
I accidentally left the test assertions unnecessarily vague in
https://github.com/zed-industries/zed/pull/3348. This PR makes the
assertions constrain the behavior more specifically. I also added a
second test for a related bug that was fixed in that PR, about
performing and undoing an edit while a buffer reload is in-progress.

Release Notes:

- NA

Max Brunsfeld created

55548ca Fix underspecified assertions in new tests for file reload race

Max Brunsfeld created

3b5754a Clean up tests (they compile now)

Piotr Osiewicz created

eb9959a gpui: notifications now takes an entity instead of a model

Piotr Osiewicz created

ae1ebc6 fixup! Remove dead code (for now).

Piotr Osiewicz created

27600b6 Remove dead code (for now).

Click to expand commit body
Ensure actions are registed just once (previously some were registered on both Workspace and search bar itself).

Piotr Osiewicz created

741e11c Fix up action derive

Piotr Osiewicz created

f23cc72 chore: cargo fmt

Piotr Osiewicz created

dca2dc7 Merge branch 'main' into search2

Piotr Osiewicz created

8845f5a Clean up warnings

Piotr Osiewicz created

6680e1e Create new Zed release channel: nightly

Kirill Bulatov created

27cd7b2 Merge branch 'main' into editor2-autocomplete

Antonio Scandurra created

9d81846 Remove binary target collisions between zed & zed2 (#3352)

Click to expand commit body
Get rid of the following warnings:

```
The example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
warning: output filename collision.
The example target `test_app` in package `live_kit_client2 v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client2)` has the same output filename as the example target `test_app` in package `live_kit_client v0.1.0 (/Users/someonetoignore/work/zed/zed/crates/live_kit_client)`.
Colliding filename is: /Users/someonetoignore/work/zed/zed/target/debug/examples/test_app.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.

---------------

warning: output filename collision.
The bin target `Zed` in package `zed2 v0.109.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed2)` has the same output filename as the bin target `Zed` in package `zed v0.113.0 (/Users/administrator/actions-runner-1/_work/zed/zed/crates/zed)`.
Colliding filename is: /Users/administrator/actions-runner-1/_work/zed/zed/target/debug/Zed.dSYM
The targets should have unique names.
Consider changing their names to be unique or compiling them separately.
This may become a hard error in the future; see <https://github.com/rust-lang/cargo/issues/6313>.
```

as we plant to build *.dmg of both versions for a while.

Release Notes:

- N/A

Kirill Bulatov created

89e44d4 Remove binary target collisions between zed & zed2

Kirill Bulatov created

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