Commit log

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

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

Click to expand commit body
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

Click to expand commit body
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

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

ed6c8b1 Allow actions to be propagated from nested ViewContexts

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

d5cc3fe Implement Debug for keymap::MatchResult

Click to expand commit body
Helpful when debugging issues with keystroke dispatch.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

92f411f Extract generic forward_project_request function on server

Click to expand commit body
All these methods did the same thing with different message types.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

e822c6a Handle project-wide search on guests

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

1278f54 Add project search RPC messages

Max Brunsfeld created

8dce91b Upgrade time crates to silence warning on Rust 1.59

Max Brunsfeld created

9a97588 Eliminate RwLock around LanguageServer's outbound message channel

Click to expand commit body
We observed a deadlock when quitting zed. The main thread was attempting
to acquire a write lock to this outbound message sender. We weren't able
to understand exactly how this occurred, but we removed the use of a
lock there, so this shouldn't happen anymore.

Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld and Antonio Scandurra created

368301f Reuse a previous project find whenever possible

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

e278c42 Don't assume that cloning on split will reuse the same underlying model

Click to expand commit body
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra and Max Brunsfeld created

7123407 Don't share query editor state after project find has been split

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

Antonio Scandurra and Nathan Sobo created

1e04411 Don't focus query editor if there are matches on tab switch

Antonio Scandurra created

b506db7 Use the new split pane's navigation history when cloning an item

Antonio Scandurra created

88bfe5a Allow splitting project find and maintain the searches in sync

Antonio Scandurra created

29e035a Don't report a buffer when it doesn't contain any matches

Antonio Scandurra created

2611b54 Always `sync` before clearing or removing excerpts from `MultiBuffer`

Click to expand commit body
We don't have any test that proves this is needed but seems good nonetheless.

Antonio Scandurra created

ff0fa0e Gracefully handle passing an empty set of ranges to `push_excerpts`

Antonio Scandurra created

f649074 Refine project find's UX

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

Antonio Scandurra and Nathan Sobo created

51c645f Toggle focus between query editor and results on cmd-shift-F

Nathan Sobo created