vscode-c3

August 14, 2026 · View on GitHub

Installation

git clone https://github.com/c3lang/vscode-c3.git
cd vscode-c3

npm install
npm run build

Building with bunx

bunx vsce package --no-dependencies

In vscode head over to the extensions section and click on the 3 dots. From there select "Install from VSIX ..." and select the newly created file

Language server & formatter binaries

On first activation the extension automatically downloads and manages the c3-lsp language server and the c3fmt formatter. A progress notification is shown while each binary downloads — no prompt or manual step is required.

You can override this behaviour in your VS Code settings:

SettingPurpose
c3.lsp.enableSet to false to disable the language server (skips the download).
c3.lsp.pathPoint at a custom c3-lsp binary instead of the managed download.
c3.format.enableSet to false to disable formatting (skips the download).
c3.format.pathPoint at a custom c3fmt binary instead of the managed download.
c3.tools.checkForUpdateToggle the automatic update checks for both binaries. Replaces c3.lsp.checkForUpdate and c3.format.checkForUpdate, which are gone — clear them from your settings, they are ignored.

When a path is left empty the extension keeps the binary up to date for you.

Commands

Both are in the command palette, and the settings UI links to them as buttons from the Tools section (c3.tools.checkForUpdate), which is its own settings group precisely because each command covers both tools rather than one of them.

CommandPurpose
C3: Re-download tools (c3-lsp and c3fmt)Deletes the managed binaries and downloads the latest release of each, whatever version is installed. Use it when an install is damaged rather than outdated.
C3: Check for tool updatesRuns the update check on demand — for when the automatic notification was dismissed or missed. Reports the result even when everything is up to date.

Both restart the language server and re-register the formatter afterwards, so no window reload is needed. If a custom path is set, the command offers to clear it first, since a custom binary otherwise shadows the managed download.

Issues and contributing

If you find any issues or bugs feel free to open an issue or fix it yourself and open a Pull request.