Navigation - Find All / Replace All - Beta

Now if only we had a way to replace things such as Mesh assets, textures, decals, etc :wink:

3 Likes

Ok having lived with it for a bit, I have more feedback!

  • I wish it selected the Find input box when I selected this tools tab. It feels like an extra click for nothing.

  • I wish I could auto expand results. I use Find to navigate my code, and having to click dividers open every time is extra clicks

  • Currently, the replace feature is super clunky. If you just want to replace 1 or 2 instances out of all the ones its found, you can’t do it. Please add the ability to activate the replace function on each line individually.

1 Like

I have one two pieces of criticism with the new Find All/Replace All.

Focus the search text box when it opens

When I press the shortcut with the old Find All, I was able to quickly search up what I wanted to look for. Now I have to move the mouse over to the Find Box and then click on it to type. It’s tedious, it can get in the way of quickly debugging an issue.

Focusing the search text box would provide better UX.

Allow searching while the game is running

Sometimes I need to check Scripts injected by Roblox (e.g. ChatScript) and it’s hard to search through the injected code base with the current Find dialog. I have to copy the scripts injected into play mode back into edit mode for it to search where I want it to, not exactly a fun thing to do.


Example finding UserFixBubbleChatText in the BubbleChat LocalScript injected by Roblox. It isn’t there :fearful:

2 Likes

I hope this gets added in. Every time I use the command I then start typing expecting it to already be focused. :sweat_smile:

2 Likes

Yeah I noticed its not copying selected text into itself either, which is something the old one did.

1 Like

The are a couple good plugins you can use to accomplish this:

https://www.roblox.com/library/143326409/Selection-Plugin

Thanks for these, but @t1dtony has already mentioned it above. I was just trying to use the shortcut F2 to rename them together but I couldn’t figure out how to do it until he told me.

Thanks anyways.

1 Like

I typically do:
CMD-SHIFT-P
and type Name, to access the name field quickly

Really fancy widget, feels way better.

The only things I don’t like is that the bar isn’t automatically focused when the widget opens, and how you need to manually re-search when you change something. If I change e.g. case sensitivity, I need to click back into the search bar and move my hands to my keyboard to press enter to refresh the results. It’s also not immediately clear the results haven’t been redone, so if I change the query and nothing changes, I might mistakenly assume there were no changed results (which I almost did just now).

1 Like

I like the new advanced features of the new editor, but I think that there should be a toggle to auto-expand all the scripts by default. I usually want to see every individual result at once, and the new editor now requires that you click every single script with a result to do so.

An example of the use case I’m talking about: I often am searching for every time a certain ValueObject is set to see what scripts are in control of it. When doing that, I want to be able to look through every single result line as quickly as possible, so that I can see only the lines that are setting the ValueObject and ignore the ones that are just referencing it. Each result matters much more to me than what script the result is in.

In the old version, it’s easy to skim through the results quickly, such as when I search for “SomeIntValue” here and am only looking for assignments:

1 Path.To.Script(49): if game.ReplicatedStorage.SomeIntValue.Value >= 92 then
2 Path.To.Another.Script(4): game.ReplicatedStorage:WaitForChild("SomeIntValue").Value = 17
3 Yet.Another.Script(192): while game.ReplicatedStorage.SomeIntValue.Value < previousValue do
4 Scripts.Are.All.The.Same(34): game.ReplicatedStorage.SomeIntValue.Value = -1
5 So.Many.Scripts.There.Be(324): local importantInt = game.ReplicatedStorage:WaitForChild("SomeIntValue")

Within ~10 seconds I can see that only scripts #2 and #4 are assignments and ignore the rest. (And ofc #5 as well in case I do a "importantInt.Value =" later on.)

However, with the new Find/Replace window, I have to first open up the fold for each script listed just to see what’s in it, instead of being able to immediately skim through every result. If it’s an instnace referenced in many different scripts, than that speed bump becomes a tedious process of clicking tens of little arrows. For me this is really annoying since this kind of searching is my primary use of Find/Replace All.

Overall, I like the features added in the new window and I like how it visually matches the single script Find/Replace, but it needs some kind of quick toggle to auto-expand all of the results at once so that it isn’t slower to use than the old version.

1 Like

Better, but there are still some UX issues

This is confusing, I want to see the lines of code not just the word I search for
image

When I open the window it should automatically focus on the searchbox so I can instantly start typing instead of having to move my mouse and click the textbox

1 Like

I cant really find this feature in roblox studio how can i activate it?

I have a suggestion, right clicking on the script should have options to delete or view the script in explorer instead of clicking the result, opening it and then clicking on view in explorer in the script tab.

One issue im running into when using this feature is that, when i had to remove some malicious code (which was added by a plugin one of my teammates had) which had tons of what i assume are tabs and then malicious code added to each script, when i tried using the find all/ replace all tool, after typing the thing to search, it would show up the list of times it found a match (which was really large [was a nasty thing to remove, but thats not the important thing here]) and then would basically freeze studio leaving me no option other than having to forceclose it. This was in a tc with drafts enabled.

I assume it was crashing due to the huge amount of characters (tabs) a line where the code was hidden. It made it really annoying to use though, since it would crash 3/5 times.

P.D: Also I think it would be nice to be able to select multiple scripts you want to do the replacement in, since filtering it by name can be a bit slow sometimes.

The new functionality is very helpful and appreciated, thank you for working on the widget. Some remarks (disclosure: I have the “Show CoreGui in explorer” and “Show CorePackages in explorer” settings on):

  • +1 for autofocusing on the search box when the widget is shown. This is by far the most important thing that’s missing from the previous widget, which did this automatically. It makes me able to search for what I am looking for without taking my hands out of my keyboard. This being removed makes it much more clunky to use. Script-level Ctrl-F does this, so why can’t this do it either?
  • Scripts from CorePackages and CoreGui show in the results. While this can be useful in certain occasions, the previous version did not do this and this currently only pollutes the search results. I see there is a filter feature but I don’t know how to use it to limit my results to only the services which I use (ReplicatedStorage, ServerScriptService, StarterPlayerScripts, Players, Workspace and others). It seems it is only able to filter one location at once and is not able to filter by script type either. If there actually is a way to do that, it is very unclear.
  • Searching for a common term such as script in an empty baseplate freezes Studio. A few results are displayed and then Studio freezes. After freezing, Studio’s CPU usage in the task manager drops to near 0, so I cannot tell if it is busy or not. It just looks like it stops working entirely.
1 Like

Hey Everyone,
We’ve been hard at work reading your replies and working on fixes to address them.
We wanted to let you know that the current Studio release has code that causes difficulty with clicking the find search bar and the button to show the replace text input bar. We are aware of this, and it will be fixed next release. In the meantime, we found that aiming for the very bottom of the button to show the replace bar yields the best results, and clicking anywhere outside of the placeholder text for the find search bar works best.
Thanks for your patience and for your help in tracking down issues with the Find All/ Replace All Beta.

4 Likes

I love this, it’ll drastically speed up my workflow.

I have a question about this, is there a way I can write in blocks of code and replace them?

Like instead of

print("GREAT UPDATE")

something like

if updateIsGood then
  print("GREAT UPDATE")
end

And also is there a way to have it so if it recognizes one part of the thing you are looking for, it can delete the whole line?

4 Likes

Pressing Ctrl + Shift + F focuses the search text textbox, however it does not highlight the existing text in that box. This is extremely frustrating because it means that you can’t just immediately start typing your search terms after pressing Ctrl + Shift + F, you have to use Ctrl + Backspace to clear the existing contents first.

This is pretty clearly a bug, given that other Find All widgets in other editors do highlight the text in that scenario.

2 Likes

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.