Script Editor & Command Bar Improvements!

this is cool

is it normal that i lag though

self and continue aren’t keywords

  • continue is not a keyword in Luau because it would break some old scripts
  • self is not a keyword. It’s just a local variable pointing to a table

As an admin did reply with, these are being added as their own customisation option in a future update, as seen here
image

continue was added to Luau and has been available for over half a year. You may read more about its addition to Luau in the following post:

As for self, it is a keyword that is built into Lua; and it assumes as you’ve mentioned the first argument of a function call to a method, usually a table. The term keyword does not necessarily mean that the word cannot be overridden, but the fact that it is a word used to access a variable handled by the language. As such the term keyword is appropriate.

6 Likes

Albeit it is very buggy.

For example, try the following code:

local color = a and Color3.new(1,1,1) or Color3.new(0,0,0)

Using the color picker can result it to bug like this:

local color = a and Color3.new(0.5,0.5,0.5) -- Where is the other color3??

Otherwise, awesome update. Thank you.

Yes they are.

local module = {}

module.Function = function() return end

function module:Thing()
	self.Function() -- No error, highlighted
end

while wait() do
	continue -- No error
end
2 Likes

self is not a keyword and is handled exactly the same as any other identifier in language.

5 Likes

These statements contradict each other.

1 Like

I’m noticing this too:
image

1 Like

self can’t be a keyword; otherwise it couldn’t be used as a variable. It often gets highlighted exceptionally because it is assigned implicitly when using the Method syntax sugar. Roblox chose to highlight it using the same style as keywords, hence the confusion. If there are any doubts, the Lua manual lists every keyword:

https://www.lua.org/manual/5.1/manual.html#2.1

continue (and type) are Luau-exclusive tokens whose type depends on the context. Presumably, Roblox’s custom syntax highlighter will eventually style them the same as keywords when they are used as statements, or as variables otherwise.

A syntax highlighter does not determine the type of a token. It’s the other way around; the type of a token determines how it will be styled. Often, the grammar of a syntax highlighter is more primitive than the grammar of the language being highlighted, so exceptions are made if something can’t be accurately represented. Ideally, both grammars would be exactly the same, which Roblox is taking steps towards achieving.

1 Like

Because one is wrong. self is not a keyword.

7 Likes

Indeed, I stand corrected. The term keyword in the context of programming implies that it cannot be used as an identifier, which conflicts with the semantic definition of the term “keyword”, which I understand to be a word with a special meaning. This is what was intended by my post.

1 Like

Thank you for the clarification, it’s greatly appreciated.

The issue as I see it is that the continue token and any references to the word self were previously highlighted and bolded. This change actively made my code more confusing to read, and removes a previous feature.

Hi! This case should now be fixed.

2 Likes

I think it is intentional but it is definitely throwing me off. It’s harder for me to find built in methods now because of this change. (especially “self.” and “self:”)

1 Like

This update introduced a short 1-2 second freeze when switching script tabs for me. This happens every time I switch to a script tab (but not when I switch to the world view tab). I think this is because highlighting (or maybe some keyword stuff, something intensive) is processed when the tab is viewed, whereas before (just a guess) I think it would have been happening once when the tab is first opened.

Otherwise, I’m super happy with everything. (Also, glad to hear that self’s highlighting is also going to be fixed, its really wrecking my flow haha… Crazy how much the color of one little word does to my ability to read my code)

Hi - a few questions:

Do you mean when you first open a script, or when you switch back to a tab you previously had open? Are you reopening the tab at the same position you left it, or jumping around using, say, the find widget? Does the script first display un-highlighted and then highlight after a second? Or does it initially display highlighted?

1 Like

Not sure if my post was disregarded, but this is generally one of those smaller features that provide quality of life. Previously when you highlighted a word it would automatically highlight those that matched, this has been changed in this update and currently doesn’t do this.

Further Details

1 Like

Both when a script is first opened, and when I switch to a tab I previously had open the freeze occurs.

I am opening the tab at the same position I left it in, and, reordering them has no effect on the duration of the freeze (nor causes a freeze).
I do not have the find widget open.

When switching to an already opened tab I see exactly whatever was last displayed on that tab pixel for pixel, including the typing indicator if it was displayed. (Basically, if I switch to a tab, place my cursor somewhere, and swap right as the cursor blinks on, then swap back, the cursor will always again be visible in the frozen view, and likewise, if I switch when it is not visible, it will not ever be visible when I switch back whether or not the cursor was visible in the tab I am switching from. I suspect that whatever was rendered to the view is cached in memory)

When opening a brand new script tab, or closing a script tab and reopening the same script the text is not highlighted during the freeze, but, the freeze still occurs and occurs for roughly the same length.

Additionally, the Script Menu buttons at the top of studio are grayed out during the freeze when switching from the world view to any script view (so I assume the freeze is occuring before these buttons are updated):

Looks like that’s the vanilla macOS color picker. You can choose the sliders at the top to get different options.

I am hoping in the future, that they add spelling errors/autocorrect feature. Cause whenever I type my lines of code, I make spelling errors commonly and others do too. Otherwise, the new/upgraded feature looks nice!