IntelliSense for Commodiesel 75 (.cdsl) scripts: completion, hover documentation with code samples,
signature help, warnings for mistakes, colour icons for palette numbers, and snippets.
Unofficial community extension. It is not made by or affiliated with the creators of the game.
Getting started
Install this extension. The Luau Language Server it builds on should be installed with it.
Open any .cdsl file. Also works in folders if you're using modules.
That's literally it! :fafa:
The first time, the extension briefly restarts the language server so it can load the Commodiesel definitions.
If you use the Luau Language Server for Roblox projects, you'll be asked once before the extension changes any
user-wide setting.
What you get
Completion and hover docs for everything the game adds, with parameters, return values and examples taken from the in-game manual.
Objects are followed through variables. Also when it comes out of a table, a loop or a callback.
Warnings for unknown globals, missing arguments, unused variables and wrong argument types.
Palette colours. Hexadecimal numbers get a colour icon; click it to pick a colour and the nearest palette number is written back. Hover a number for its colour code.
Automatic end. Press Enter after while true do, if x then or pcall(function() and the closing end (or end)) is added for you, like in Roblox Studio.
Luau syntax. IntelliSense for all the standard Luau syntax (if it's supported by the Commodiesel aswell).
Good to know
There is no sprite.visible in the game: setting it silently does nothing. To hide a sprite, destroy it or move it off screen.
vector2 and Vector2 are the same thing, and v.x and v.X both work.
Some standard Lua functions are missing in the game (coroutine, setmetatable, select, io, debug ...). The editor does not warn about those yet.
How it works
The game runs Luau, so this extension adds no language logic of its own. It points the
Luau Language Server
at definition files describing the Commodiesel 75 by writing its settings:
with a folder open: into that folder's .vscode/settings.json, so other projects are not affected;
with no folder open: into your user settings, so a single file works.
It also registers .cdsl as a Luau file.
Settings and commands
Setting
Default
commodiesel.autoEnable
on
Turn IntelliSense on automatically when a .cdsl file opens
commodiesel.colourSwatches
on
Colour swatches and hover for palette numbers
commodiesel.snippets
on
Snippets in .cdsl files
commodiesel.autoCloseBlocks
on
Enter after do / then / function(...) adds the closing end
Everything is underlined as unknown. Run Luau: Reload Language Server from the command palette.
"Failed to read definitions file". Reinstall the extension; an old copy may be left behind.
The status bar says Lua or Plain Text. Click it and choose Luau, or make sure no other extension claims .cdsl (disable older Commodiesel extensions).
Roblox projects. Roblox mode and Commodiesel mode cannot share a folder. The extension only changes settings for folders that contain .cdsl files, or for single files when no folder is open.