You are viewing a static version of the site. Enable JavaScript to benefit from the
full functionality of this site and enable such things as forum posting.
version 10.6
eporocrail:
I ran some tests.
If a search found nothing the search field turns light red. OK.
I tried again to replace double characters to see if it replaces only one occurrence or several. Guess what, more occurrences are replaced. Even up to four at a time are replaced. I added a screenshot although the replacement action itself is not shown of course.
The unfolding of functions did not change. Only the first program which is opened performs as expected. The following does not unfold the functions.
Hope this helps.
matt:
Oh, right - it's replacing multiple characters in a run - not replacing multiple copies of a word. That makes sense. That's expected behaviour. If you replace, for example, "ww" with "w" and you have "wwwwwwww" then you get "wwww":
wwwwwwww - _w_wwwwww
*w*_ww_wwww - *ww*wwww
*ww*_ww_ww - *www*ww
*www*_ww_ - *wwww*
*...* denotes previous replacements
_..._ denotes current cursor position
Or something like that. Search and replace works on substrings. A word made up of the same repeated substring will have that substring replaced multiple times.
Also sketch bookmarks are working fine for me. I don't know why they won't for you. Check that the Tree Updater service is running (Tools -> Service Manager).
eporocrail:
I replayed the search and replace test in the Arduino Ide. It is possible that I have been spoiled by the behaviour of that IDE. One occurrence of "rr" out of a sequence of lines with "rr" is replaced with ONE substitute.
The remark about bookmarks does not make any sense to me.
I am just saying that the display of the function tree for the second program is still not working on my Mac. I checked under
Tools->Servicemanager. The tree updater is running.
matt:
I have no real control over how the search and replace works. This is the entirety of the replaceAll function:
public void replaceAll(String text, String rep, boolean mc, boolean back) {
search.setSearchFor(text);
search.setReplaceWith(rep);
search.setMatchCase(mc);
search.setSearchForward(!back);
SearchEngine.replaceAll(textArea, search);
}
Looking at the SearchContext documentation there does seem to be setWholeWord
and setRegularExpression
which I could implement to give more flexibility to the search and replace.
For the bookmarks - if you edit the second file in some way (just add a space, for example) do the bookmarks appear?
eporocrail:
YES!!!!!!
As soon as I insert a space somewhere, the tree is displayed.
Great!
And the search and replace stuff I can live with that. It was just because after the update I wanted to see what happened.
No big deal for me anyfurther.
matt:
To reduce processing overheads the tree updater service only does anything when a change to the document is detected. That is supposed to include the initial loading of the document, but obviously its not happening always . I'll add it to my list of things to fix one day, since it's no big deal now.
I'm working on re-hashing the find panel a little at the moment. Replacing words with icons. Replacing the "back" option with left and right arrows for find next / previous. Replacing the "case" option with a burger menu with more options in it (whole word and case sensitive for the moment - maybe more to come later).
eporocrail:
When you are working on find replace their might be another small one.
The normal sequence would be "ctrl +c", "ctrl + f" and than "ctrl +v" to copy a word, invoke the search routine and than past the word which is copied.
With UECIDE after copying a word, activating the search field also puts the copied word into the field without the extra "ctrl +v" paste command.
matt:
Yes, that is intentional. It's a feature that was requested.