Commit Graph
39175 Commits
Author SHA1 Message Date
Antonio Scandurra 1a59cfc89a Extract a common match_index_for_direction and active_match_index 2022-02-28 10:34:11 +01:00
Nathan Sobo 7cfe2c22ec Fix warning 2022-02-27 18:17:15 -07:00
Nathan Sobo 874b1c1537 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`.
2022-02-27 18:07:46 -07:00
Nathan Sobo bf5783cb62 Focus the project find results editor on a tab in the query editor 2022-02-27 16:15:06 -07:00
Nathan Sobo c61f84196e 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.
2022-02-27 16:14:40 -07:00
Nathan Sobo d1523063ae Select first match when results are ready 2022-02-27 14:24:06 -07:00
Nathan Sobo 76ac710d21 Fix warning 2022-02-27 14:21:28 -07:00
Nathan Sobo d672aa41eb Implement navigation between project search matches 2022-02-27 14:18:04 -07:00
Nathan Sobo 5f24a95e7e 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.
2022-02-27 13:02:09 -07:00
Nathan Sobo daa9b0fb75 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.
2022-02-27 09:49:16 -07:00
Nathan Sobo d66a460a8d Clone editor's searchable state on split 2022-02-27 09:48:46 -07:00
Nathan Sobo dbd1a23841 Add log dependency in search crate 2022-02-27 09:25:40 -07:00
Nathan Sobo 3d3922e18e 💄 2022-02-27 09:25:27 -07:00
Nathan Sobo 0ab1b65d1c Limit project search tab label to 24 characters
I'd love to fade the text out, but for now I just append an ellipsis.
2022-02-27 08:27:02 -07:00
Nathan Sobo 9fef8b069d 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.
2022-02-27 08:15:38 -07:00
Nathan Sobo e8eeccda88 Remove carriage returns 2022-02-27 07:47:46 -07:00
Nathan Sobo d5c19f641f 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.
2022-02-26 14:12:31 -07:00
Nathan Sobo a4ba94d506 Activate the *newest* existing project find view on cmd-shift-F 2022-02-26 14:03:14 -07:00
Nathan Sobo 08409a57ed 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.
2022-02-26 13:23:05 -07:00
Nathan Sobo e9a05aebb2 Render a magnifier icon and the query in project search tab
Also: Wire up events so the modified status updates correctly.
2022-02-26 08:21:38 -07:00
Antonio Scandurra f3de2f2385 Don't focus results editor on cmd-shift-f when there are no results 2022-02-26 14:43:02 +01:00
Antonio Scandurra c311f59dca 🎨 2022-02-26 14:31:36 +01:00
Nathan Sobo 31c9e9be24 Always open a new project find on alt-cmd-shift-F 2022-02-25 19:48:43 -07:00
Nathan Sobo 47088e9bf4 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.
2022-02-25 19:26:15 -07:00
Nathan SoboandMax Brunsfeld b212b31d0a 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>
2022-02-25 16:49:28 -07:00
Nathan SoboandMax Brunsfeld 1b9c112890 Don't show buffer search UI on ProjectSearchView
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:14:45 -07:00
Nathan SoboandMax Brunsfeld 54ef82a002 Allow actions to be propagated from nested ViewContexts
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:14:16 -07:00
Nathan SoboandMax Brunsfeld a000ddfb96 Implement Debug for keymap::MatchResult
Helpful when debugging issues with keystroke dispatch.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:13:53 -07:00
Nathan SoboandMax Brunsfeld 288da2114c Extract generic forward_project_request function on server
All these methods did the same thing with different message types.

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:20:42 -07:00
Nathan SoboandMax Brunsfeld d25da1a985 Handle project-wide search on guests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:09:47 -07:00
Max Brunsfeld 44feb71b99 Add project search RPC messages 2022-02-25 12:38:31 -08:00
Max Brunsfeld 97d044e1a0 Upgrade time crates to silence warning on Rust 1.59 2022-02-25 10:39:44 -08:00
Max BrunsfeldandAntonio Scandurra 868e66f385 Eliminate RwLock around LanguageServer's outbound message channel
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>
2022-02-25 10:04:57 -08:00
Antonio ScandurraandMax Brunsfeld c9b3061f85 Reuse a previous project find whenever possible
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-25 18:30:28 +01:00
Antonio ScandurraandMax Brunsfeld 55ec98b42c Don't assume that cloning on split will reuse the same underlying model
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-25 18:30:04 +01:00
Antonio ScandurraandNathan Sobo 15852294ea Don't share query editor state after project find has been split
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-25 18:10:48 +01:00
Antonio Scandurra 4a781d0ef5 Don't focus query editor if there are matches on tab switch 2022-02-25 17:23:03 +01:00
Antonio Scandurra d15fb9c3dc Use the new split pane's navigation history when cloning an item 2022-02-25 17:22:30 +01:00
Antonio Scandurra 332cd1039c Allow splitting project find and maintain the searches in sync 2022-02-25 16:20:02 +01:00
Antonio Scandurra 573965cfdf Don't report a buffer when it doesn't contain any matches 2022-02-25 15:40:19 +01:00
Antonio Scandurra 531fab9035 Always sync before clearing or removing excerpts from MultiBuffer
We don't have any test that proves this is needed but seems good nonetheless.
2022-02-25 15:36:43 +01:00
Antonio Scandurra 7522fa71a4 Gracefully handle passing an empty set of ranges to push_excerpts 2022-02-25 15:36:16 +01:00
Antonio ScandurraandNathan Sobo 240e42d2ff Refine project find's UX
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-25 15:27:34 +01:00
Nathan Sobo fc14d8f50a Toggle focus between query editor and results on cmd-shift-F 2022-02-25 05:04:45 -07:00
Antonio Scandurra 34b4858a06 Open searched buffers in parallel 2022-02-25 12:29:50 +01:00
Antonio Scandurra 434cced397 Focus results editor when project find matches are updated 2022-02-25 12:17:25 +01:00
Antonio Scandurra 687f680ad9 Avoid extra smol::channel when iterating through snapshot paths 2022-02-25 11:49:33 +01:00
Antonio Scandurra 7a38350567 Add a fast path for when the search query is empty 2022-02-25 10:58:45 +01:00
Antonio Scandurra 91841d9ff5 Focus query editor when deploying project-find 2022-02-25 10:58:32 +01:00
Antonio Scandurra b98ece275b Respect field editor background, color and selection styling 2022-02-25 10:48:22 +01:00