CL++ + luau-lsp
CL++ 0.4 does not replace luau-lsp. The two servers sit on different files.
| You are editing | Language server | What it knows |
|---|---|---|
.clpp / .clp / .clh | CL++ pack (clpp install) | CL++ AST, scopes, clpp api complete |
Emitted .luau | luau-lsp | Luau types, Roblox API, Rojo sourcemap |
IntelliSense while you type CL++ comes from clpp api complete on the CL++ AST. luau-lsp cannot parse .clpp. It validates the output after compile.
Editor setup (Roblox)
Section titled “Editor setup (Roblox)”- Install CL++ (
clpp-setup.exeorclpp setup) and reload the window. - Install Luau Language Server (JohnnyMorganz.luau-lsp).
- Point luau-lsp at a Rojo sourcemap if you use Rojo, for example
sourcemap.jsonfromrojo sourcemap. - Keep compiling with Cluaupp /
clpp api compileso the.luaufiles luau-lsp sees stay in sync.
CL++ LSP trigger characters include ., :, >, @. Completions for locals, params, Class::Method, and @this fields come from analysis — not from regex on the current line.
Optional CI check of emitted Luau
Section titled “Optional CI check of emitted Luau”clpp does not bundle luau-analyze. If that binary is on PATH:
clpp compile path/to/file.server.clpp -o /tmp/file.server.luauluau-analyze /tmp/file.server.luauOr compile a tree and analyze the output directory:
clpp build src -o outluau-analyze outTreat failures as Luau-side issues (types, unknown globals in the emit). Syntax that failed in CL++ never reaches this step.
What not to do
Section titled “What not to do”- Do not send
.clppbuffers to luau-lsp. - Do not expect the CL++ language server to load Roblox class dumps — that remains Cluaupp headers plus the editor catalog.
- Do not look for a CL++ bytecode VM. Performance of the language tool is parser + analysis + emit.
See the Luau engineering map and the compiler pipeline.