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
4cfd345
Use `async_broadcast` to emit fake FS events
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
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
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`
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
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Max Brunsfeld and Nathan Sobo created
02ae2d8
Hold client weakly in UserStore
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
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
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
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
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
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Max Brunsfeld and Antonio Scandurra created
2111ec0
Make `SearchProject` a `Foreground` message
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
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`
...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
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
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
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
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
I'd love to fade the text out, but for now I just append an ellipsis.
Nathan Sobo created
ec31715
Rename "find" to "search"
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
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
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
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
afea5a3
:art:
Antonio Scandurra created
f6b7cbd
Always open a new project find on `alt-cmd-shift-F`
Nathan Sobo created
60710fa
Only store one nav history entry when opening excerpts
Also: Introduce the ability to disable and enable the nav history directly. This allows us to explicitly push an entry when opening excerpts and then disable all pushes as we open individual buffers.
Nathan Sobo created
7212589
Open excerpts on alt-enter
Also: Remove special handling for alt-shift-D binding in diagnostics view that opens excerpts. Rely on alt-enter in all multi-buffers instead. Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo and Max Brunsfeld created
dea40c5
Don't show buffer search UI on ProjectSearchView
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo and Max Brunsfeld created
ed6c8b1
Allow actions to be propagated from nested ViewContexts
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Nathan Sobo and Max Brunsfeld created