Script Editor & Command Bar Improvements!

I use VSCode and it does that. What IDEs did you check?

4 Likes

I checked VSCode, that’s why I included

they keep the words highlighted even when you double click the selected word. The other IDE was Sublime Text.

For those that can’t seem to understand.

VSCode
image

Roblox
image

This was only changed with this update, previously it would highlight the other terms.

@rogchamp

2 Likes

I’d love an option for this, but a workaround is to set the “Matching Word Background Color” to be the same as your “Background Color” in the studio editor colors and you won’t see it anymore

1 Like

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