Commit Graph
3027 Commits
Author SHA1 Message Date
Antonio Scandurra abdfdcdabf Include buffer's deferred ops when computing has_buffered_operations 2022-02-28 14:22:24 +01:00
Antonio Scandurra 720056d0db Add unit test for project search 2022-02-28 11:10:22 +01:00
Antonio Scandurra ed89475cf6 Extract a common match_index_for_direction and active_match_index 2022-02-28 10:34:11 +01:00
Nathan Sobo 8eba96424e Fix warning 2022-02-27 18:17:15 -07:00
Nathan Sobo cb230ad574 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 1ddae2adfd Focus the project find results editor on a tab in the query editor 2022-02-27 16:15:06 -07:00
Nathan Sobo 71241b1fb8 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 7d119dcd54 Select first match when results are ready 2022-02-27 14:24:06 -07:00
Nathan Sobo 7831979be0 Fix warning 2022-02-27 14:21:28 -07:00
Nathan Sobo 64d22925c2 Implement navigation between project search matches 2022-02-27 14:18:04 -07:00
Nathan Sobo 7ef98fb935 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 19b5de2181 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 dabb17a2ef Clone editor's searchable state on split 2022-02-27 09:48:46 -07:00
Nathan Sobo 136699e7bd Add log dependency in search crate 2022-02-27 09:25:40 -07:00
Nathan Sobo c7338ebe88 💄 2022-02-27 09:25:27 -07:00
Nathan Sobo 039765b698 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 ec317159d7 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 dd6f8d20a3 Remove carriage returns 2022-02-27 07:47:46 -07:00
Nathan Sobo 28b71cbc03 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 e96d0a9355 Activate the *newest* existing project find view on cmd-shift-F 2022-02-26 14:03:14 -07:00
Nathan Sobo 2f427769df 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 ae1a46a4e4 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 a78fe4ef6a Don't focus results editor on cmd-shift-f when there are no results 2022-02-26 14:43:02 +01:00
Antonio Scandurra afea5a3d5e 🎨 2022-02-26 14:31:36 +01:00
Nathan Sobo f6b7cbd5cf Always open a new project find on alt-cmd-shift-F 2022-02-25 19:48:43 -07:00
Nathan Sobo 60710fa5d5 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 721258911c 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 dea40c5d1a 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 ed6c8b1836 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 d5cc3fea3d 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 92f411f01e 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 e822c6a64e Handle project-wide search on guests
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:09:47 -07:00
Max Brunsfeld 1278f5484f Add project search RPC messages 2022-02-25 12:38:31 -08:00
Max Brunsfeld 8dce91be23 Upgrade time crates to silence warning on Rust 1.59 2022-02-25 10:39:44 -08:00
Max BrunsfeldandAntonio Scandurra 9a97588f79 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 368301fcec 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 e278c423d3 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 7123407f42 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 1e04411066 Don't focus query editor if there are matches on tab switch 2022-02-25 17:23:03 +01:00
Antonio Scandurra b506db7c93 Use the new split pane's navigation history when cloning an item 2022-02-25 17:22:30 +01:00
Antonio Scandurra 88bfe5acb0 Allow splitting project find and maintain the searches in sync 2022-02-25 16:20:02 +01:00
Antonio Scandurra 29e035a70d Don't report a buffer when it doesn't contain any matches 2022-02-25 15:40:19 +01:00
Antonio Scandurra 2611b5449f 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 ff0fa0e0bd Gracefully handle passing an empty set of ranges to push_excerpts 2022-02-25 15:36:16 +01:00
Antonio ScandurraandNathan Sobo f649074d36 Refine project find's UX
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-25 15:27:34 +01:00
Nathan Sobo 51c645f6b4 Toggle focus between query editor and results on cmd-shift-F 2022-02-25 05:04:45 -07:00
Antonio Scandurra 2147db9b41 Open searched buffers in parallel 2022-02-25 12:29:50 +01:00
Antonio Scandurra 5be93044f6 Focus results editor when project find matches are updated 2022-02-25 12:17:25 +01:00
Antonio Scandurra 561123d6de Avoid extra smol::channel when iterating through snapshot paths 2022-02-25 11:49:33 +01:00
Antonio Scandurra 6a0cca7178 Add a fast path for when the search query is empty 2022-02-25 10:58:45 +01:00