Jump to content
You must now use your email address to sign in [click for more info] ×

Find & Replace - Round 2


Recommended Posts

To Serif, a hearty "Thank you!" for hearing and delivering on our request for find and replace by regular expressions. That is a powerful function for a version 1 product!

Now I would like to propose some refinements to be added to the road map.

1. Ability to save searches for later reuse. This would be more than just saving the search string (which currently I am doing via an external file and using copy/paste), but it would also save the various find by format settings. Setting up the search string and format combos is time consuming and easy to make errors.

2. Limit scope of search. I am thinking of these scopes: document, current story, to end of story, maybe even all open documents. Probably forward and backward. Fellow forum members, did I miss any?

Besides these, there may be some room for cleaning up the current implementation. For example, the "Replace All" button should not need one to first click Find. This invites human error when performing multiple searches back to back. Here is a little clip that illustrates that potential error. Initially I search for "Word 1," then I change my mind and search for "Word 2," but (as can happen when real life interrupts concentration), I forget to use the Find button again after changing my search string. "Word 1" from the previous search is the word that gets replaced when I use Replace All. I discovered this mistake when habits from other software led me to some results I did not expect.

 

I believe this potential mistake should be impossible to make. Two possible solutions come to mind: 1) "Replace All" should internally make sure the search results is current before replacing, or 2) Dynamically update the search results, so that either it is always updated, or else it grays out the Replace and Replace All buttons as soon as the search string is changed.

Link to comment
Share on other sites

Absolutely. These are probably the main issues I have with the current implementation. And we need an option to search hyperlink targets (URL strings), preferably not from the F&R panel, but from the Hyperlinks panel. :)

Link to comment
Share on other sites

19 hours ago, garrettm30 said:

2. Limit scope of search. I am thinking of these scopes: document, current story, to end of story, maybe even all open documents. Probably forward and backward.

This is necessary, although I doubt I would need "all open documents" and I worry that it could be used inadvertently and mess up a half dozen documents.

Mac Pro (Late 2013) Mac OS 12.7.4 
Affinity Designer 2.4.0 | Affinity Photo 2.4.0 | Affinity Publisher 2.4.0 | Beta versions as they appear.

I have never mastered color management, period, so I cannot help with that.

Link to comment
Share on other sites

1 minute ago, Old Bruce said:

although I doubt I would need "all open documents"

For myself, I almost never use it in InDesign, and the cases where I do, it is where I have have a book split into multiple documents using the book feature that Publisher doesn't currently have. As Publisher currently stands, I might never miss that as a scope option. I wonder how many others would need it.

Link to comment
Share on other sites

  • 2 weeks later...

I wonder what makes you expect to get replaced a not-searched-yet ("find") item.

In the movie above it seems to be obvious, that the highlighted result at the moment the "Replace All" gets hit is the found result ("Word 1") – and not the text in the search field (which wasn't searched at all):

951117146_FRsearchfindreplace.thumb.jpg.d81dbb134ccec986e0bb0840dbdeded5.jpg

This becomes more useful with a list of more than 1 result where you don't want get replaced all. Then it is obvious that the software needs to know a specific found item to replace. The UI does highlight that for user/machine communication and confirmation.

I agree the way the buttons are placed on same level visually makes it harder and less intuitive how it works. It would be probably easier to understand if the replace buttons would be underneath the found list:

1281784381_FRpanel2.thumb.jpg.d1ca76eb7cd81e161131f476bf5bd6ee.jpg

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

On 7/25/2019 at 5:54 AM, thomaso said:

I wonder what makes you expect to get replaced a not-searched-yet ("find") item.

It could be habit from the behavior of other apps such as InDesign that do exactly that. Not that Affinity has to follow everything InDesign does (of course). In this case, it is not so unreasonable to expect that, once one has entered 1) a search term, and 2) a replace term, those two parameters should be respected when subsequently clicking "Replace All." Conversely, I am struggling to understand how it could ever be a desired result that after entering a new search term one still wants the replacement to be made to the previous search results.

Microsoft Word is a good parallel to Affinity's implementation, in that it too returns the search results in a sidebar list. However, I when I follow the exact sequence in MS Word as I showed in the video, the Replace All button applies the results to the new search term. In Microsoft's case, it dynamically updates the results list, which I think is the preferred behavior if performance is not a problem. The other alternatives are either to disable to the Replace buttons when a new query is entered, or at minimum to at least internally test to see if the string that is about to be replaced does still match the current search term. It should not be possible to replace over old results.

In fact, I can't think of any program with search/replace where I can search for an old string, then change the string, and then without pressing Find can replace over the old string. I went through all my apps that have a find/replace feature on the computer currently in front of me:

  • MS Word
  • MS Excel
  • InDesign
  • Apple Pages
  • Apple Numbers
  • TextEdit
  • Apple Mail
  • Coda 2
  • Antidote 10
  • Postbox 5

When I clicked "Replace All," after I entered the second search term (without first clicking "Find" or equivalent), they all replaced according to the new search string. I could not reproduce what I showed in my video in any of them. By the way, 5 of the 10 dynamically updated the search results as soon as I entered a new query. The other half did let me press Replace All without first clicking Find.

So to answer your question, that is why I expected "to get replaced a not-searched-yet item." Affinity can dare to be different, and usually we are glad for it, but in this case there is nothing to be gained. The requirement to first click Find again to get an updated list is something the software should handle without careless humans needing to remember to do it. That's why I have left this feedback in this feedback forum.

On 7/25/2019 at 5:54 AM, thomaso said:

I agree the way the buttons are placed on same level visually makes it harder and less intuitive how it works. It would be probably easier to understand if the replace buttons would be underneath the found list

I feel that it would be a step in the wrong direction to move the button away from the fields that the button controls, especially to move it all the way to the opposite end of the studio (which in some cases could be as long as the entire sidebar). Then in a series of find/replace operations, we must continually move the mouse back and forth. That's too much mousing about.

 

Link to comment
Share on other sites

On 7/26/2019 at 8:58 PM, garrettm30 said:

Conversely, I am struggling to understand how it could ever be a desired result that after entering a new search term one still wants the replacement to be made to the previous search results.

Yes, that is definitely odd. I would also say it should never happen. Replace All must pick up the newly entered term! Everything else contradicts the implementation of Replace All in virtually any other application I know.

Link to comment
Share on other sites

3 hours ago, A_B_C said:

Yes, that is definitely odd. I would also say it should never happen. Replace All must pick up the newly entered term! Everything else contradicts the implementation of Replace All in virtually any other application I know.

But it's more than an issue with Replace All.

Even a simple Replace should do a Find the first time you press it, if Find wasn't the immediately preceding action. That's how other applications work, in my experience. And if that's not going to happen, then changing the Find term should immediately clear the results list, to force the user to do a new Find.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.4.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.4.1

Link to comment
Share on other sites

2 hours ago, A_B_C said:
On 7/26/2019 at 8:58 PM, garrettm30 said:

Conversely, I am struggling to understand how it could ever be a desired result that after entering a new search term one still wants the replacement to be made to the previous search results.

Yes, that is definitely odd. I would also say it should never happen. Replace All must pick up the newly entered term! Everything else contradicts the implementation of Replace All in virtually any other application I know. 

It seems you both would want to be able to "Replace All" without the need to do a search before. That could be useful for replacing all but also it would demand a kind of differentiation in the UI for the use of the button "Find" and its shown result list. Even if you expect the list of findings should be ignored when using "Replace All" it still might be confusing for users who take the shown list serious – regardless whether there is a need to use the Find button at all. Then, some might request to be able to delete the list ... and UI gets more complicated.

On 7/26/2019 at 8:58 PM, garrettm30 said:

I feel that it would be a step in the wrong direction to move the button away from the fields that the button controls, especially to move it all the way to the opposite end of the studio (which in some cases could be as long as the entire sidebar). Then in a series of find/replace operations, we must continually move the mouse back and forth. That's too much mousing about.

The distance you need to move your mouse for single replaces is quite independent of the position of the "Replace" button: If it is placed above the list then the distance increases with any further list entry, if it is below then it is vice versa: the mouse moves become less the more you come near to the end of the list.

As a more convenient workaround I'd like to scroll through the list of findings via the arrow up/down keys, and possibly do "Replace" with a key, too.

On 7/9/2019 at 9:50 PM, garrettm30 said:

2. Limit scope of search. I am thinking of these scopes: document, current story, to end of story, maybe even all open documents. Probably forward and backward. Fellow forum members, did I miss any?

I want to add "Selection" as a search area limiter, both for text and frame selections.
I would not need the text cursor position to become respected in the search, neither other opened documents.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

20 hours ago, walt.farrell said:

Even a simple Replace should do a Find the first time you press it, if Find wasn't the immediately preceding action. That's how other applications work, in my experience. And if that's not going to happen, then changing the Find term should immediately clear the results list, to force the user to do a new Find.

That’s true, Walt. :)
 

Link to comment
Share on other sites

On 7/29/2019 at 6:03 AM, thomaso said:

I want to add "Selection" as a search area limiter, both for text and frame selections.
I would not need the text cursor position to become respected in the search, neither other opened documents.

Ah yes, limit scope by selection. I forgot that one, but I use it frequently. I would edit my original post to add it if i could, but I can't seem to figure out how to do that.

Maybe not everyone has a use for it, but I personally do use "To end of story" a lot. 

Link to comment
Share on other sites

Hm, I still see "edit" at posts from last year. – Don't worry about adding "Selection" to your list, I guess when F&R gets such limiter options then 'selection' will be included ;)

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

12 hours ago, garrettm30 said:

Maybe posts can't be edited after they get too old.

I think your editing rights may change as you progress from ‘Advanced Member’ to ‘Dedicated User’ (i.e. as your post count goes up).

Alfred spacer.png
Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro
Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.4.1 (iPad 7th gen)

Link to comment
Share on other sites

12 minutes ago, jrkay said:

My problem is that although the finds take you to where it occurs in the text, although sometimes it doesn't, it doesn't always highlight it which makes it very hard to find.

I'm not sure that it sometimes fails to highlight, but I have discovered that the light highlighting is hard to find when the selection is small. Sometimes I have to keep looking for a while to find it.

Link to comment
Share on other sites

6 minutes ago, garrettm30 said:

I'm not sure that it sometimes fails to highlight

Actually, I need to take back what I wrote a moment ago. With a little extra testing, I have seen it fail to highlight in some circumstances. If we can figure out what the circumstances are, we can make a bug report. I've been trying to nail it down, but so far I haven't found any reproducible steps.

Also, it seems the highlighting color varies, and I can't understand why. I tried to change the system highlighting color to something other than blue, and it does change some aspects of Publishers' interface, but it does not change either of these two colors:

 

1610010832_ScreenShot2019-08-09at10_46_25AM.png.0dc019f335cc71b30161ea5ec7c91639.png 71501953_ScreenShot2019-08-09at10_46_33AM.png.39ae76c7017d5f47494fc6e5da9b6c12.png

Link to comment
Share on other sites

2 minutes ago, garrettm30 said:

Actually, I need to take back what I wrote a moment ago. With a little extra testing, I have seen it fail to highlight in some circumstances. If we can figure out what the circumstances are, we can make a bug report. I've been trying to nail it down, but so far I haven't found any reproducible steps.

I feel your frustration as I have the same hassle here.

Mac Pro (Late 2013) Mac OS 12.7.4 
Affinity Designer 2.4.0 | Affinity Photo 2.4.0 | Affinity Publisher 2.4.0 | Beta versions as they appear.

I have never mastered color management, period, so I cannot help with that.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.