Commit log

c661ff2 Revert "Use `async_broadcast` to emit fake FS events"

Click to expand commit body
This reverts commit 4cfd345f9d91ebd8e76a668f3494ecf2e45c4b9d, because
having a bounded broadcast introduces the possibility of waiting forever
when there isn't yet a receiver processing those events.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

992328a Forbid parking in `project_panel::tests::test_visible_list`

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

Antonio Scandurra and Nathan Sobo created

0bb7189 Use a weak handle to poll local worktree snapshot

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

Antonio Scandurra and Nathan Sobo created

83a3402 Make `TestAppContext` and its dependencies available only in tests

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

Antonio Scandurra and Nathan Sobo created

0d6f6bf Detect when view handles are leaked

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

Antonio Scandurra and Nathan Sobo created

aa03ebc Enable leak backtraces by setting `LEAK_BACKTRACE=1`

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

Antonio Scandurra and Nathan Sobo created

4cfd345 Use `async_broadcast` to emit fake FS events

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

Antonio Scandurra and Nathan Sobo created

3e9dbe1 Capture a weak reference to the `Project` in fake LSP

Antonio Scandurra created

8d078ed Don't block when emitting fs events

Click to expand commit body
Blocking could happen while processing events, which would cause the
background scanner to never make any further progress.

Antonio Scandurra created

ce59e57 Remove project from host connection when unregistering it

Antonio Scandurra created

466db69 Pass a reference to `TestAppContext` in tests

Click to expand commit body
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.

Antonio Scandurra created

8390f04 Allow capturing references in the future passed to `Deterministic::run`

Antonio Scandurra created

7ce6f23 Remove all windows on dropping `TestAppContext`

Click to expand commit body
This allows us to remove the dropped entities and flush effects as
necessary.

Antonio Scandurra created

10a872a Avoid reference cycle between `Client` and its models

Antonio Scandurra created

471ecae WIP - include dhat for memory profiling tests

Max Brunsfeld created

3b7cfad Try clearing Client's state at the ends of integration tests

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

Max Brunsfeld and Nathan Sobo created

02ae2d8 Hold client weakly in UserStore

Click to expand commit body
This avoids a reference cycle that is causing some tests
to fail due to leaked handles at the moment. There may be
a better way to fix this though.

Max Brunsfeld created

1faaa91 Avoid retaining executor in the FakeFs

Click to expand commit body
This probably isn't the *root* cause of why an executor is leaked,
but by cutting off this cyclic references, it may make it a bit easier
to track down leaks of an executor.

Max Brunsfeld created

3788efe Clean up guest connection states correctly when a collaborator disconnects

Click to expand commit body
This bug was caught by running the executor until parked after tests.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

c09921e Clear the executor at the end of a test by running until it is parked

Max Brunsfeld created

426e0e3 Flush effects when dropping a TestAppContext

Click to expand commit body
This way, at the end of a test, dropped entities will be removed, and will drop
the handles that they hold.

Max Brunsfeld created

7d53e37 Start work on detecting leaked handles in tests

Click to expand commit body
For now, just track models. Tests fail because we don't
yet clear the app contexts at the right time.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

d1d324e Never close buffers when sharing

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

2111ec0 Make `SearchProject` a `Foreground` message

Click to expand commit body
However, the randomized integration test is still failing:

```
ITERATIONS=100000 SEED=3027 OPERATIONS=200 cargo test --release test_random --package=zed-server -- --nocapture
```

Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

400a2fc Don't use a bounded channel for signaling that buffers have been opened

Click to expand commit body
Blocking the sender could halt deserialization for no reason if nobody
is consuming the notifications.

Antonio Scandurra created

1313ca8 Don't delete buffer state when calling `get_open_buffer`

Click to expand commit body
...as we might be in the process of completing a request that could
open a buffer. This was causing a failure in the randomized integration
test.

Antonio Scandurra created

5f7a759 Add project-wide search to randomized integration test

Antonio Scandurra created

abdfdcd Include buffer's deferred ops when computing `has_buffered_operations`

Antonio Scandurra created

720056d Add unit test for project search

Antonio Scandurra created

ed89475 Extract a common `match_index_for_direction` and `active_match_index`

Antonio Scandurra created

8eba964 Fix warning

Nathan Sobo created

cb230ad Re-activate the most recently-activated project search on cmd-shift-F

Click to expand commit body
This commits adds the beginnings of an application state facility as a non-static place to store the most recently-activated search for each project.

I also store workspace items by descending order of their entity id so that we always fetch the newest item of a given type when calling `Workspace::item_of_type`.

Nathan Sobo created

1ddae2a Focus the project find results editor on a tab in the query editor

Nathan Sobo created

71241b1 Add capture phase for action dispatch

Click to expand commit body
Just like the DOM, we now bubble events down the tree during a capture phase before bubbling them back up.

Nathan Sobo created

7d119dc Select first match when results are ready

Nathan Sobo created

7831979 Fix warning

Nathan Sobo created

64d2292 Implement navigation between project search matches

Nathan Sobo created

7ef98fb Make versions oldest_selection and newest_selection that don't require snapshots

Click to expand commit body
I thought I needed this but actually didn't, but I still kinda think it's a good change for the public interface of Editor.

Nathan Sobo created

19b5de2 Introduce ProjectSearchView constructor

Click to expand commit body
We had some duplication when cloning on split, so this is to unify that before we add any more complexity to construction.

Nathan Sobo created

dabb17a Clone editor's searchable state on split

Nathan Sobo created

136699e Add log dependency in search crate

Nathan Sobo created

c7338eb :lipstick:

Nathan Sobo created

039765b Limit project search tab label to 24 characters

Click to expand commit body
I'd love to fade the text out, but for now I just append an ellipsis.

Nathan Sobo created

ec31715 Rename "find" to "search"

Click to expand commit body
Search is both a verb and a noun, which makes it more natural to use in situations where we need to name a thing rather than a process.

Nathan Sobo created

dd6f8d2 Remove carriage returns

Nathan Sobo created

28b71cb Select query when focusing query editor

Click to expand commit body
Also: Clear the selection when we focus the results editor because we continue to render the selection even when the editor isn't focused and it looks awkward. Another approach we could take is to not render selections for non-focused editors, either always or with an option. But considering that we select all anyways next time we return focus to the query editor, I think this is ok for now.

Nathan Sobo created

e96d0a9 Activate the *newest* existing project find view on cmd-shift-F

Nathan Sobo created

2f42776 Allow a new search to be created with cmd-enter

Click to expand commit body
This replaces the `cmd-alt-shift-F` binding to open a new search. Instead, you can preserve the existing search results by entering a query and then hitting `cmd-enter` instead of `enter`. This opens a new project find view and restores the previous view to whatever query it was previously displaying. It's a bit strange, but I don't want to rely on splitting as the only way of creating multiple sets of search results.

Nathan Sobo created

ae1a46a Render a magnifier icon and the query in project search tab

Click to expand commit body
Also: Wire up events so the modified status updates correctly.

Nathan Sobo created

a78fe4e Don't focus results editor on `cmd-shift-f` when there are no results

Antonio Scandurra created