Script Editor - Better Analysis and Luau-Powered Upgrades

I’m not getting any autocompletion, regardless of whether there are errors/warnings present.

Furthermore, whenever I’m typing an expression, it’s bound to have errors in it until the expression is completed, especially if I’m typing out a function call statement. The statement MyModule.SomeSubTable.SomeFunction() for example will be an invalid statement until I place that last closing parenthesis, which means there’s no way to type it out without any warnings/errors present. Certainly this isn’t desirable behavior compared to the previous behavior, and it kinda defeats the purpose of autocompletion.

Edit: I should mention, I am getting autocompletion of variables bound to the immediate scope, just not functions/values in modules that would be autocompleted with the old behavior.

hovering and being able to see the type of a nonstrict variable sounds great, closer to stuff like Godot

Even as non-scripter and a builder myself this is pretty cool to my scriptier friends out very cool!

Hey! For clarification, my plugin is a plugin inspired by VS Code’s snippets which looks for specific syntax like --@class {SomeClassName} and replaces it with with a template that the user can define. It heavily benefits from getting fast Source updates for the sake of responsiveness.

As for:

The script you shared will cause infinitely recursive call since it edits script content when script content changed.

This is only true in older versions of Studio. In the newest version, It will not infinitely recurse and it will not put the test string in the editor window. I used CloneTrooper’s Studio Mod Manager to revert my Studio to an older version and it did replace the text in the editor window and did infinitely recurse.

The point behind the repro code is to highlight that updating the script’s source from within the changed signal does not behave properly anymore. The fact that it recurses (in the old version at least) is just down to me being careless with how I wrote the code but regardless, it gets the point across.

Edit:
I took a gif of the behavior for simplicity’s sake. Here you go. yR3MO1lXGb
The most strange part about this is that when I click the X button in the corner, the test source magically appears. It only ever happens when I bring up that message box.

Here’s a gif from an older version of Roblox Studio:
ZgF0MXDzfs

2 Likes

Hi, with all these great updates coming to the script editor. Can we expect to see native support for Rojo / other code editors?

Most of these new features have already been implemented in these code editors. It feels like Roblox studio is trying to become a professional code editor instead of a game engine.

I don’t know if you compared Rojo as if it was a code editor, but it isn’t.

This was asked a while ago on #studio-features, and I remember the conclusion being no. I heard Roblox Staff uses Rojo to use VSCode and such to implement new features, so that would be cool to see, but it kind of doesn’t make sense to have that there…

2 Likes

I meant support for Rojo or just support for other code editors using another program like Rojo (built-in).

What I see happening now is the code editor getting upgrades (which is not a bad thing). However, when using other code editors that already have these features, I can’t see why Roblox doesn’t want to natively support them. The only reason I see is to lock us developers to only using Roblox studio.

As you said, it’s probably not going to happen Just like Linux support :disappointed_relieved:

3 Likes

Go To Declaration? YES! I waited for it so long…it will really help us.

image

image

image

I don’t think it’s working correctly

I think it means it can’t find a local of it I believe.

But there is, a local in it but somehow it can’t detect it.

Or, maybe Counter_Txt looks like it’s in screenGUI but it isn’t.

The issue they’re displaying is the Type Checker looking inside the ScreenGui class for Counter_Txt rather than looking for it as a child.

Ahh kk, I am bad with scripts xd but I still try anyway to learn.

very evident that this issue is the result of a change of this script editor update.

i’d like to see this addressed, this is (what i’d call) a big issue and is quite problematic for any plugin that wants to edit the source quickly - which of course exists. is this intended functionality? i’d hope not

what’s the meaning of “Scripts Are Non-Strict By Default”?
I’m not good at English so I can’t know the exact meaning well, xd

it means scripts don’t have the strict thing on by default

If “Luau-Powered Go To Declaration” is enabled, CTRL+F12 has no response and will not jump to the function declaration

OS:Windows10
Studio Ver:0.474,0.475

1 Like

Does the script have --!strict at the top? And do you have Scripts are Non-Strict by default enabled?

I’m not sure if you ever got an answer to this, but the issue is it UI.Counter_Txt isn’t a member (like a property) of the ScreenGui. It is bad practice to index for children like this anyway – use Instance:FindFirstChild instead.

local Counter_Txt = UI:FindFirstChild("Counter_Txt") :: TextLabel