# search: Fix replace all being silently dropped \(\#50852\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/e5dc2f06c9e625cb95658a8fcaad35627ade360a)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: e5dc2f06c9e625cb95658a8fcaad35627ade360a

Requested commit: e5dc2f06c9e625cb95658a8fcaad35627ade360a

Commit: e5dc2f06c9e625cb95658a8fcaad35627ade360a

Tree: acdde5070dc5ac56a65ea256196516eda5831eb8

Author: Om Chillure

Committer: GitHub

## Message

```
search: Fix replace all being silently dropped (#50852)

Fixes #50848

### Problem
When Replace All was triggered with a stale search query (i.e., the
query text had changed since the last completed search), the old code
ould restart the search and immediately return, silently discarding the
replace-all intent. This caused the Replace All action to appear to do
nothing on the first try, only working on subsequent attempts once
results were already loaded.

### Fix :
Fix this by introducing a `pending_replace_all` flag on
ProjectSearchView. When Replace All is invoked while a search is in
flight or the query is stale, the flag is set and the action is
deferred.
Once the search completes and `entity_changed` is called, the flag is
checked and `replace_all` is automatically dispatched.

Also disable the Replace Next button in the UI while a search is
underway, since it cannot meaningfully act without up-to-date results.

### Release Notes:

- Fixed "Replace All" in project search not working on the first attempt
when the search query was changed or results hadn't loaded yet.
```

## Parents

- [0238d2d180c62ae3f53ed5fd9efb6d2569555706](https://git.cafe/gitcafe/zed/commit/0238d2d180c62ae3f53ed5fd9efb6d2569555706?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/e5dc2f06c9e625cb95658a8fcaad35627ade360a?format=markdown)
