Skip to content

Editor Setup

Jung Hyun, Nam edited this page May 28, 2026 · 2 revisions

Editor Setup

Cadenza does not ship its own language layer. It rides the base Roslyn LSP that the official C# extension is built on, so completion, hover, go-to-definition, and diagnostics light up for every Cadenza SDK as long as that extension is active and pointed at file-based apps.

TL;DR

Editor What you need
VS Code ms-dotnettools.csharp (just "C#", not "C# Dev Kit")
Cursor / Kiro / VS Code forks The community-rebuilt C# extension from Open VSX (see below)
JetBrains Rider Works with the .NET 10 SDK installed
Visual Studio Works with VS 2026 + .NET 10 SDK

The C# Dev Kit is not required for Cadenza.

VS Code

  1. Install C# (ms-dotnettools.csharp). Do not install OmniSharp-based alternatives.
  2. Open a folder containing your .cs file.
  3. Open the file. The status bar should show the Roslyn LSP starting ([Info] Starting Roslyn LSP in the C# output channel).
  4. Type #:sdk Cadenza. — the SDK list should suggest Cadenza, Cadenza.Web, Cadenza.Mcp, etc.

If completion doesn't appear, see Troubleshooting → "IntelliSense not lighting up".

Cursor, Kiro, and other VS Code forks

The Microsoft C# extension is gated to Microsoft-branded builds via marketplace EULA. For forks, use a community rebuild:

Install steps

  1. In the editor, open Extensions → search for dotnetdev-kr-custom.csharp.
  2. Install it. (If the editor pulls from VS Marketplace by default, switch its registry to Open VSX in settings.)
  3. Open Command Palette → "C#: Open Output". Confirm you see Starting Roslyn LSP and not "Starting OmniSharp". If you see OmniSharp, set dotnet.server.useOmnisharp to false in settings.
  4. Open a .cs file with #:sdk and verify completion.

Debugging caveat

Microsoft's debugger (vsdbg) is licensed for Microsoft-branded IDEs only. On forks, the official debug adapter is restricted. For step debugging in a fork, point your launch config at the muhammad-sammy/csharp build of the C# extension, which bundles netcoredbg instead.

// .vscode/launch.json (Cursor / Kiro with netcoredbg)
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Run cadenza script",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "dotnet-build-file-based-app",
      "program": "dotnet",
      "args": ["run", "${file}"],
      "cwd": "${workspaceFolder}",
      "stopAtEntry": false,
      "console": "integratedTerminal"
    }
  ]
}

Adjust the program / args to match the netcoredbg adapter your fork's extension expects.

JetBrains Rider

Open a folder containing .cs files. Rider detects file-based apps when the project SDK is .NET 10 — no extra setup required.

If #:sdk Cadenza@1.0.15 shows as unresolved, run dotnet restore once in the folder (or just dotnet run app.cs once) so the local NuGet cache has the Cadenza SDK package; Rider picks it up on the next file reload.

Visual Studio (full IDE)

VS 2026+ supports file-based apps natively. Open the folder, then the .cs file. The SDK directive resolves the same way dotnet run resolves it on the CLI.

If your VS edition is older or doesn't show file-based app support in the IDE, the dotnet run app.cs CLI path still works — you just don't get the editor integration.

What "full IntelliSense" includes

When the Roslyn LSP picks up a Cadenza script, you get:

  • Completion for every Tier 1 bare name (Get, Tool, Glob, Log.Info, …)
  • Completion across the referenced packages you pulled in with #:package
  • Hover docs from the package XML comments
  • Go-to-definition into the SDK source (decompiled if symbols aren't shipped)
  • Diagnostics from the C# compiler exactly as in a project-based file

See also

  • Installation — getting the .NET SDK on the machine
  • Troubleshooting — completion not lighting up, Roslyn LSP not starting, etc.
  • Directives — what the editor is completing when you type #:sdk

Clone this wiki locally