Commit Graph
810 Commits
Author SHA1 Message Date
Piotr OsiewiczandKirill d80da05884 Search woes (#6698)
Fixes #6441 
Release Notes:
- Fixed "SelectNextMatch", "SelectPrevMatch" and "SelectAllMatches"
actions not working when search bar is not visible.
- Fixed "SelectPrevMatch" not being bound in project search.

---------

Co-authored-by: Kirill <kirill@zed.dev>
2024-01-25 13:28:21 +01:00
Conrad Irwin e0ce269b6b Allow prompts to have detail, and use for good
Make channel panel errors louder
2024-01-24 23:15:37 -07:00
a9ef7e0eca Drop active searchable item subscription when changing active item
We were leaking the previous active item's subscription, which meant
that we would receive the `MatchesInvalidated` event as many times as
we changed items.

Co-Authored-By: Thorsten Ball <thorsten@zed.dev>
Co-Authored-By: Mikayla Maki <mikayla@zed.dev>
2024-01-23 18:31:21 +01:00
Thorsten BallandKirill a6c9239cbd Fix focus and re-focus of project-wide search
This fixes the issue of `Cmd-shift-f` not refocusing the search bar when
a project-wide search already exists.

It also fixes the handlers for "search in new" and "new search".

Co-authored-by: Kirill <kirill@zed.dev>
2024-01-18 15:05:45 +01:00
Kirill Bulatov 67159f9a99 Fix buffer search focus not working
When the Deploy action is called in the buffer with the buffer search bar already deployed, the focus should be on the search bar.
2024-01-18 10:51:28 +02:00
Mikayla Maki 607f2a7ba5 Add typo detection to CI (#4107)
Adding the typos crate to our CI will take some doing, as we have
several tests which rely on typos in various ways (e.g. checking state
as the user types), but I thought I'd take a first stab at fixing what
it finds.

Release Notes:

- N/A
2024-01-17 17:13:47 -08:00
Piotr OsiewiczandKirill f4f65e9c2c Editor docs (#4097)
Release Notes:

- N/A

---------

Co-authored-by: Kirill <kirill@zed.dev>
2024-01-18 00:48:37 +01:00
Mikayla dfdb70d06a Add typos configuration for zed and add a few more typo fixes 2024-01-17 15:22:37 -08:00
Mikayla Maki 325d7f44b1 Merge branch 'main' into fix-typos 2024-01-17 14:36:03 -08:00
Mikayla 0b43bd7c14 Fix typos detected by crate-ci/typos 2024-01-17 14:31:21 -08:00
Mikayla Maki 0b787d1540 Fix scrolling in collab panel (#4105)
When the `List` element's state is `ListState::reset()`, it eagerly
trashes it's cached element heights in anticipation of a prompt render.
But, due to the recent `display_layer` changes, that re-render is not
always forthcoming. This is a problem for `ListState::scroll()`, which
depends on these cached elements to correctly calculate the new logical
scroll offset.

Solutions we attempted:

- Cache the element heights and continue the scroll calculation 
- This was conceptually incorrect, reset should only be called when the
underlying data has been changed, making any calculation with the old
results meaningless.
- Lazily re-compute the element heights in scroll 
- Beyond being a non-trivial refactor, this would probably also cause us
to double-render the list in a single frame, which is bad.
- Cache the scroll offset and only calculate it in paint 
- This solution felt awkward to implement and meant we can't supply
synchronous list scroll events.
- Delay resetting until paint 
- This means that all of the other APIs that `ListState` supplies would
give temporarily incorrect results, worsening the problem

Given these issues, we settled on the solution with the least
compromises: drop scroll events if the state has been `reset()` between
`paint()` and `scroll()`. This shifts the responsibility for the problem
out of the List element and into consumers of `List`, if you want
perfectly smooth scrolling then you need to use `reset()` judiciously
and prefer `splice()`.

That said, I tested this by aggressively scrolling the Collab panel, and
it seems to work as well as it did before.

This PR also includes some initial testing infrastructure for working
with input from the platform and rendered elements.

Release Notes:

- N/A
2024-01-17 14:11:34 -08:00
Kirill Bulatov 077d499172 Ignore buffer search events if it's not for the current buffer 2024-01-17 22:18:54 +02:00
Kirill Bulatov 9b2481a1c3 Implement similar workspace registration flow for project search actions 2024-01-17 22:08:40 +02:00
Kirill BulatovandPiotr 6f643c2b2d Properly register buffer_search'es actions handlers
Now those handlers do not intercept events/actions when the buffer search bar is dismissed.

co-authored-by: Piotr <piotr@zed.dev>
2024-01-17 22:08:40 +02:00
Kirill BulatovandPiotr f2854eba26 Start adding project search listeners to workspace
co-authored-by: Piotr <piotr@zed.dev>

To be able to trigger them from search multibuffer excerpts.
2024-01-17 22:08:40 +02:00
Mikayla bfd8f15884 Fix test failures 2024-01-16 22:30:44 -08:00
Mikayla Maki c7c33d1a0f Switch project search deploy behavior to be isolated to a pane (#4072)
This adjusts the solution in
https://github.com/zed-industries/zed/pull/4014 to fix the double-focus
issue, allowing each pane's project search to work independently.

Release Notes:

- Changed the name of the `workspace::DeploySearch` action to
`pane::DeploySearch` and changed it's behavior to open a new search OR
focus an existing project search in the current pane.
(https://github.com/zed-industries/community/issues/2395)
2024-01-16 10:41:57 -08:00
Mikayla a87180e3d1 Adjust project search behavior to be isolated to a pane 2024-01-16 10:06:48 -08:00
Thorsten Ball 1c920e2e21 Fix rustfmt by pulling out long string into constant 2024-01-16 17:20:36 +01:00
Joseph T. Lyons fa0ba2cca2 Add more open events
project search
diagnostics
welcome page
2024-01-15 16:26:04 -05:00
Marshall Bowers dc67b7bcaa Rename h_stack and v_stack to h_flex and v_flex, respectively (#4053)
This PR renames the `h_stack` and `v_stack` to `h_flex` and `v_flex`,
respectively.

We were previously using `h_stack` and `v_stack` to match SwiftUI, but
`h_flex` and `v_flex` fit better with the web/flexbox terminology that
the rest of GPUI uses.

Additionally, we were already calling the utility functions used to
implement `h_stack` and `v_stack` by the new names.

Release Notes:

- N/A
2024-01-15 11:34:06 -05:00
Mikayla 4a824521f3 remove more commented code 2024-01-12 20:10:40 -08:00
Piotr Osiewicz 426fd176b8 Add test for new DeploySearch behaviour 2024-01-11 18:39:28 +01:00
Piotr Osiewicz 97251f0ef8 project search: Do not open a new existing item in the current pane for DeploySearch
Fixes https://github.com/zed-industries/community/issues/2395 using the first approach suggested in the original post (focus the existing search without bringing it over to a pane).
2024-01-11 18:39:28 +01:00
Piotr Osiewicz a1dd2cfd0c Remove todo from search tests 2024-01-10 11:26:11 -08:00
Marshall Bowers fdb1b33044 Use the .selected style for buffer search option buttons (#4000)
This PR updates the `IconButton`s used to control the buffer search
options to use the `.selected` state to denote when they are active.
This matches what we are doing in the project search.

This should improve the contrast in certain themes.

Release Notes:

- Improved the active style for the search options in buffer search.
2024-01-10 10:35:06 -05:00
Marshall Bowers b3d65a66e2 Fix possessive "its" in docs and comments (#3998)
This PR fixes a number of places where we were incorrectly using "it's"
where we needed to use the possessive "its".

Release Notes:

- N/A
2024-01-10 10:09:48 -05:00
Kirill BulatovandPiotr Osiewicz 48c15abf2b Do not dismiss buffer search when any modal is present
Co-authored-by: Piotr Osiewicz <piotr@zed.dev>
2024-01-09 23:29:05 +02:00
Piotr Osiewicz ef01883833 search: Remove newlines from query used for tab_content. (#3976)
Fixes https://github.com/zed-industries/community/issues/2388
Release Notes:

- Fixed tab content of project search overflowing the tab for queries
with newlines.
2024-01-09 17:16:25 +01:00
Marshall Bowers 84dd2c6954 Rename IconElement to just Icon (#3974)
This PR renames the `IconElement` component to just `Icon`.

This better matches the rest of our components, as `IconElement` was the
only one using this naming convention.

The `Icon` enum has been renamed to `IconName` to free up the name.

I was trying to come up with a way that would allow rendering an
`Icon::Zed` directly (and thus make the `IconElement` a hidden part of
the API), but I couldn't come up with a way to do this cleanly.

Release Notes:

- N/A
2024-01-09 10:11:20 -05:00
Conrad IrwinandMax 690159001b Tidy up TestContext lifecycle
Co-Authored-By: Max <max@zed.dev>
2024-01-05 16:31:41 -07:00
Conrad Irwin 455d60f20a Merge branch 'main' into channel-guests 2024-01-05 10:05:59 -07:00
Marshall Bowers bf79a11413 Iterate on design of project search bar (#3913)
This PR iterates on the design of the project search bar:

- Mode selections have been updated to use `ToggleButton`s
- Spacing has been added between the various elements.

Release Notes:

- Improved the look of the project search bar.
2024-01-05 11:48:52 -05:00
Kirill Bulatov bd41acedcb Set a minimum size for the search input field (#3912)
Release Notes:

- Show search input field wider for narrow panes
2024-01-05 18:46:48 +02:00
Marshall Bowers 62021a1ee4 Use the editor_background color for the project search empty state (#3911)
This PR updates the project search empty state to use the same
background color as the editor.

Release Notes:

- Updated the background color of the project search's empty state to
match the editor background.
2024-01-05 11:42:40 -05:00
Kirill Bulatov 716791c0c3 Set a minimum size for the search input field 2024-01-05 18:41:40 +02:00
Kirill Bulatov d28839fca3 Return back old project search behavior as default. (#3892)
Add a `workspace::DeploySearch` action and use it as a default for
"cmd-shift-f" binding. This action opens existing search tab if it
exists, or creates a new one otherwise. `workspace::NewSearch` action is
still available and always opens an existing search tab.

Release Notes:

- Added a `workspace::DeploySearch` action and use it as a default for
"cmd-shift-f" binding. `workspace::NewSearch` action is still available
and always opens an existing search tab.
2024-01-05 11:35:28 +02:00
Piotr Osiewicz add5816df8 Move Registrar implementation for Workspace to outer scope.
This fixes various actions like "Activate regex mode" that were dispatched onto main pane instead of assistant search bar.
2024-01-05 00:10:23 +01:00
Piotr Osiewicz 727d9588d8 Add DivRegistrar to reduce code duplication 2024-01-05 00:10:23 +01:00
Piotr Osiewicz 3d98797c02 Use Registrar in Assistant Panel.
This fixes various actions like "Activate regex mode" that were dispatched onto main pane instead of assistant search bar.
2024-01-05 00:10:23 +01:00
Piotr Osiewicz 3bf591232a Touchups to registrar API 2024-01-05 00:10:23 +01:00
Piotr Osiewicz 162f036d4a Explore registrar-based API for search bar.
This commit adds a Registrar trait for use by search crate. Registrar can register actions on some target and search can utilize that trait to opaquely add actions on that target.
Notably, search is now opt-in (it always was in zed2 actually). Having editor doesn't make it searchable straight out of the gate. You might have to call BufferSearchBar::new a bunch more.
2024-01-05 00:10:23 +01:00
Kirill Bulatov a5a9292c76 Return back old project search behavior as default.
Add a `workspace::DeploySearch` action and use it as a default for "cmd-shift-f" binding.
This action opens existing search tab if it exists, or creates a new one otherwise.
`workspace::NewSearch` action is still available and always opens an existing search tab.
2024-01-04 21:17:24 +02:00
Conrad Irwin 4260ed27f6 Track read_only per project and buffer
This uses a new enum to avoid confusing booleans
2024-01-03 19:31:43 -07:00
Max BrunsfeldandMikayla 8a45a99477 Remove 2 suffix for language_tools, search, terminal_view, auto_update
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-01-03 10:52:40 -08:00
Kirill Bulatov 119d06d093 Always open new project search view workspace::NewSearch action 2023-12-11 13:11:07 +02:00
Kirill Bulatov 5f4cd18805 Parallelize ignored entries for search lookup 2023-11-23 09:53:00 +02:00
Kirill Bulatov 966e5254e0 Use a git file icon for toggle gitignored search option 2023-11-22 19:09:10 +02:00
Kirill Bulatov a06008a691 Output non-ignored files first 2023-11-22 19:03:27 +02:00
Kirill Bulatov 1aa37bafa5 If enabled, search in ignored files during project search 2023-11-22 16:41:02 +02:00