Commit Graph
810 Commits
Author SHA1 Message Date
Kirill Bulatov 96f3f81c6c Fix most of the TODOs 2023-11-17 21:40:57 +02:00
Kirill Bulatov 8cca5a23b2 Move toggle ignored button into include directories editor 2023-11-17 21:40:56 +02:00
Kirill Bulatov b8ad39b42c Pass a new query parameter into the search 2023-11-17 21:40:56 +02:00
Kirill Bulatov f104a3a48a Add prettier workspace resolution test 2023-11-03 11:02:50 +02:00
KCaverly 501de94880 update text for project search if not authenticated 2023-10-21 10:28:54 -04:00
KCaverly 4ab8f0d978 update semantic search to use keychain as fallback 2023-10-21 10:19:50 -04:00
Piotr Osiewicz 36ea6531a4 buffer_search: Discard empty search suggestions. (#3136)
Now when buffer_search::Deploy action is triggered (with cmd-f), we'll
keep the previous query in query_editor (if there was one) instead of
replacing it with empty query.

This addresses this bit of feedback from Jose:
> If no text is selected, `cmd + f` should not delete the text in the
search bar when refocusing

Release Notes:
- Improved buffer search by not clearing out query editor when no text
is selected and "buffer search: deploy" (default keybind: cmd-f) is
triggered.
2023-10-18 18:05:13 +02:00
Piotr Osiewicz 0a1de1f061 search: Reorder items in search bar (#3039)
Release Notes:

- Reordered items in project and buffer search bar
2023-09-27 16:51:20 +02:00
Piotr Osiewicz 071fa7f832 project_replace: Fix up key bindings (#3034)
Release Notes:
- N/A
2023-09-26 18:40:41 +02:00
Conrad Irwin 7506450fb2 Revert "Revert "workspace: Improve save prompt. (#3025)""
This reverts commit 16bd80371b.
2023-09-25 12:18:03 -06:00
Conrad Irwin 9da31b697e Merge branch 'vim-command' 2023-09-25 11:41:13 -06:00
Kyle Caverly e05a437a29 add semantic index status, for non authenticated users (#3005)
Update project search semantic ui to accommodate for users who have not
set the OPENAI_API_KEY in their environment variables.

Release Notes:

- Expand Semantic Index status to include status for non authenticated
users
- Update Search UI to illustrate this status.
2023-09-21 14:18:58 -04:00
KCaverly 18b12dc1a3 add semantic index status, for non authenticated users 2023-09-21 13:40:01 -04:00
Piotr Osiewicz 1da3ed5c4c [WIP] Replace in project (#2984)
Targeting Preview of 09.27.
This is still pending several touchups/clearups:
- We should watch multibuffer for changes and rescan the excerpts. This
should also update match count.
- Closing editor while multibuffer with 100's of changed files is open
leads to us prompting for save once per each file in the multibuffer.
One could in theory save in multibuffer before closing it (thus avoiding
unnecessary prompts), but it'd be cool to be able to "Save all"/"Discard
All".

Release Notes:

- Added "Replace in project" functionality
2023-09-21 16:27:58 +02:00
Conrad Irwin e85104ab0b Iron out some edge-cases 2023-09-20 20:44:42 -06:00
Conrad Irwin 12cbf801f3 Flesh out v1.0 of vim : 2023-09-20 20:44:41 -06:00
Conrad Irwin 66226ea84f vim fixes for find&replace (#2995)
* allow replacing with the empty string to delete
* fix <enter> for ReplaceNext (in vim mode)

Release Notes:

- allow replacement to be empty
2023-09-20 16:42:39 -06:00
KCaverly 57f49a6530 remove conditional action registration for activate semantic search mode 2023-09-20 12:38:29 -04:00
KCaverly e7a0476a76 enable project search states to persist between workspace project searches 2023-09-20 12:12:01 -04:00
KCaverly 41f23e6adb add keymaps for activating text, regex and semantic modes 2023-09-20 10:04:43 -04:00
KCaverly 8d544db9ff create initial action for Semantic search mode 2023-09-20 09:48:27 -04:00
Conrad Irwin 76bba1b8c1 vim fixes for find&replace
* allow replacing with the empty string to delete
* fix <enter> for ReplaceNext
2023-09-19 20:48:01 -06:00
Piotr Osiewicz 36bebf9c3a buffer/replace: Advance match index on each replace. (#2992)
Release Notes:
- Fixed "Replace next" not advancing the match index.
2023-09-19 23:56:22 +02:00
Piotr Osiewicz 5fe12ec616 chore: Use aho-corasick 1.1 in direct dependencies (#2983)
Nothing too fancy, we've depended indirectly on 1.0/1.1 already, so this
is essentially bookkeeping.

Release Notes:
- N/A
2023-09-18 17:01:08 +02:00
Nate Butler 0dc4475f7f Unify icons using multiple variants, remove all unused icons 2023-09-15 12:50:49 -04:00
Kirill Bulatov f98a5f4479 Rework inlay hover model (#2969)
Fixes
```
thread 'main' panicked at 'byte index 2 is not a char boundary; it is inside '…' (bytes 0..3) of `…)`'
```
panics like
https://zed-industries.slack.com/archives/C04S6T1T7TQ/p1694535396473329

by reworking the inlay hover model:
* avoid storing "hardcoded" coordinates of hovered inlay labels (such as
`InlayOffset`), instead, remember `inlay_id` and apply required
highlights there when hint with the same id is handled
* add randomized tests on inlay highlights
* sped up inlay hint cache lookup by inlay_id

As a downside, background highlights are no long appearing on inlay
hints, but Zed does not receive any tooltips for inlays anyway (r-a does
not send them for some reason, other LSP seem to have no such feature?),
so it does not matter now.
Nontheless, if the logic for displaying hint pop-ups is present and
works for harcoded tooltips in r-a, only background highlight is missing
now.

Release Notes:

- Fixed inlay hint highlights causing panic for certain cases with
"large" characters
2023-09-15 10:40:02 +03:00
Piotr Osiewicz 228467bf59 search_bar: Add toggle_replace_on_a_pane. (#2966)
This allows users to add a keybind to ToggleReplace from Editor/Pane
contexts.

Release Notes:
- Fixed replace in buffer not reacting to keyboard shortcuts outside of
search bar<preview-only>.
2023-09-14 23:25:27 +02:00
KCaverly 02c4b3f56b small fix to rate status update 2023-09-14 15:42:21 -04:00
Kirill Bulatov d2b0649378 Use standalone inlay background highlights 2023-09-14 22:08:12 +03:00
Joseph T. Lyons 3430032e5e Fix toggle replace tooltip 2023-09-13 20:19:14 -04:00
Piotr OsiewiczandMax b21d8ecf19 Replace in buffer adjustments (#2960)
This PR addresses feedback from @maxbrunsfeld on new replace in buffer.
It fixes:
- missing padding surrounding replace input.
- missing padding around replace buttons.
- missing `.notify` call which made the replace fields not show up
immediately sometimes.

Release Notes:
- N/A

---------

Co-authored-by: Max <max@zed.dev>
2023-09-12 22:08:39 +02:00
Piotr Osiewicz c4e0bcb99e Z 1200/replace in buffer (#2922)
This is still WIP, mostly pending styling. I added a pretty rudimentary
text field and no buttons whatsoever other than that. I am targeting a
Preview of 09.13, as I am gonna be on PTO for the next week.

I dislike the current implementation slightly because of `regex`'s crate
syntax and lack of support of backreferences. What strikes me as odd wrt
to syntax is that it will just replace a capture name with empty string
if that capture is missing from the regex. While this is perfectly fine
behaviour for conditionally-matched capture groups (e.g. `(foo)?`), I
think it should still error out if there's no group with a given name
(conditional or not).
Release Notes:

- Added "Replace" functionality to buffer search.
2023-09-12 18:46:54 +02:00
KCaverly 1c8e2961bb swap
SystemTime for Instant throughout rate_limit_expiry tracking
2023-09-11 10:26:14 -04:00
KCaverlyandAntonio e97cc35258 move cx notify observe for rate_limit_expiry into ProjectState in the semantic index
Co-authored-by: Antonio <antonio@zed.dev>
2023-09-11 10:11:40 -04:00
KCaverly 421d1f3ea7 updated notify to accomodate for updated countdown 2023-09-08 16:53:16 -04:00
KCaverly c250f31f18 updated semantic_index reset status to leverage target reset system time as opposed to duration 2023-09-08 15:04:50 -04:00
KCaverly 570061adb0 initial outline for rate limiting status updates 2023-09-08 12:35:15 -04:00
Antonio ScandurraandKyle Caverly 680aee026a Implement SemanticIndex::status and use it in project search
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 19:39:30 +02:00
Antonio ScandurraandKyle Caverly 995ce1061b Allow searching before indexing is complete
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 19:04:45 +02:00
Antonio ScandurraandKyle Caverly f9456ee00c Eagerly index project on workspace creation if it was indexed before
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-07 18:51:55 +02:00
Antonio Scandurra 4dfb90fcc1 Merge remote-tracking branch 'origin/main' into semantic-search-watch-worktrees 2023-09-07 15:07:46 +02:00
Antonio Scandurra df73a67c6f Ensure SemanticIndex::search waits for indexing to complete 2023-09-06 11:40:59 +02:00
Antonio ScandurraandKyle Caverly 275a65eca0 Simplify SemanticIndex::index_project
Co-Authored-By: Kyle Caverly <kyle@zed.dev>
2023-09-05 16:54:48 +02:00
Nate Butler c0c773bc9b Reorder "Select All" button 2023-08-29 14:04:17 -04:00
Max Brunsfeld 1074339b51 Change cycle mode action to reflect new mode button order 2023-08-28 15:15:54 -07:00
Max Brunsfeld ea7008f752 Overhaul search bar layout
* Use a single row, instead of centering the search bar within a double-row toolbar.
* Search query controls on the left, navigation on the right
* Semantic is the final mode, for greater stability between buffer and project search.
* Prevent query editor from moving when toggling path filters
2023-08-28 14:20:09 -07:00
Max Brunsfeld ec0960aca8 Remove search dismiss button 2023-08-28 10:35:23 -07:00
Piotr Osiewicz 0818c0d178 language: Make Buffer::new take an explicit ID (#2900)
See Linear description for the full explanation of the issue. This PR is
mostly a mechanical change, except for the one case where we do pass in
an explicit `next_id` instead of `model_id` in project.rs.

Release Notes:
- Fixed a bug where some results were not reported in project search in
presence of unnamed buffers.
2023-08-28 11:51:50 +02:00
Piotr OsiewiczandJulia Risley f5c0e79be1 Un serialize project search (#2857)
This is the first batch of improvements to current project search. There
are few things we can do better still, but I want to get this out in
next Preview.
Most of the slowness at this point seems to stem from updating UI too
often.

Release Notes:
- Improved project search by making it report results sooner.

---------

Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-26 01:31:52 +02:00
Max Brunsfeld 0596c2f103 Format let-else statements 2023-08-25 10:11:32 -07:00