Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>ICS — Indented C#New to Visual Studio Code? Get it now.
ICS — Indented C#

ICS — Indented C#

Preview

Lucid Programming

|
1 install
| (0) | Free
Write C# using indentation instead of braces. Edit, convert, format, and synchronize simplified and standard C# files.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

ICS — Indented C# for VS Code

Edit C# using ICS (Indentation-based C# Syntax) — a brace-free view of C# where indentation replaces curly braces and optional punctuation is removed. The extension converts between .cs and .ics on the fly, so the canonical files on disk stay as ordinary C#.

Prerequisites

The extension includes the ICS converter. Its Microsoft .NET Install Tool dependency automatically installs and maintains the required user-level .NET 10 runtime. A system-wide .NET installation is not required. The first use may need an Internet connection while that runtime is downloaded.


Installation

VS Code Marketplace

Open the Extensions view (Ctrl+Shift+X), search for ICS — Indented C#, and choose Install.

Install a downloaded VSIX

Open the Extensions view (Ctrl+Shift+X), select ... at the top right, choose Install from VSIX…, and select the downloaded package.


Configuration

No converter configuration is required after installing the VSIX. Open Settings (Ctrl+,) and search for ICS to change conversion behavior.


Workflows

Live previews keep ordinary C# as the canonical file on disk. Standalone export creates a separate .ics file when you want to store ICS directly.

Privacy

Source conversion and language processing run entirely on your machine. The Microsoft .NET Install Tool may contact Microsoft to install or update the required runtime. ICS also contacts api.lemonsqueezy.com for user-requested license operations and periodic license validation.

If an ICS operation fails, Report Issue prepares a diagnostic in an untitled local editor. It does not put that diagnostic in a URL or send it to GitHub. After reviewing and editing it, you may explicitly copy the report and open the public issue form. Do not submit proprietary code, license keys, or other sensitive information.

1. Open a C# file as ICS (read/edit preview)

Right-click any .cs file in the Explorer → ICS: Open C# as ICS, or use the editor title context menu, or press Ctrl+K I with a .cs file open.

An ICS editor opens alongside the C# file. While both are open:

  • Edits in the C# file refresh the ICS view automatically (400 ms debounce).
  • Edits in the ICS view can be pushed back to C# in two ways:
    • Run ICS: Apply Preview to C# (command palette or title menu).
    • Enable ics.liveUpdateCSharpFromPreview to apply on every keystroke (off by default — each reverse conversion reformats the whole file).
    • Enable ics.autoSaveCSharpFromPreview to save each successful live update to disk even when VS Code's files.autoSave setting is disabled.

Rapid edits, undo, and redo are debounced to the latest editor state. Closing a preview cancels its pending conversions. An unsynchronized split-view preview cannot report a successful save: apply it to C# before choosing Save in the dirty-tab close prompt, or explicitly choose Don't Save to discard the edit.

2. ICS-only mode

With ICS Pro active, set "ics.displayIcsOnly": true to replace the raw C# editor entirely. Opening any .cs file shows an editable ICS view; saves write back to the .cs file silently. Useful when you never want to see the generated braces.

ICS Pro licenses are issued by Lemon Squeezy. After purchase, run ICS: Enter License Key and paste the key from the Lemon Squeezy order page or email receipt. The extension activates that key for the current VS Code machine and periodically validates it with Lemon Squeezy. Run ICS: Deactivate License before moving a limited activation to another machine.

Toggle the mode for the active file with ICS: Toggle ICS View or Ctrl+K I.

The extension rejects an edit rather than applying a conversion that would lose meaningful code or comments. It embeds no metadata in ICS and writes no sidecar files. An unchanged preview returns the original C# exactly. Saves also detect external source changes, and converter recovery preserves dirty editor buffers.

3. Sync ICS files to C#

If you keep .ics source files on disk (rather than working via preview):

  • ICS: Sync Current File to C# — converts the active .ics file and writes the paired .cs file next to it.
  • ICS: Generate C# for Workspace ICS Files — syncs every .ics file in the workspace.
  • Enable ics.syncOnSave to sync automatically whenever an .ics file is saved.

The output path is the same filename with .cs. If a .cs file already exists and does not contain the <auto-generated marker (configurable via ics.generatedFileMarker), the extension asks before overwriting. Set ics.protectUserCSharpFiles to false to suppress that prompt.

4. Export a C# file to a standalone ICS file

Right-click a .cs (or .ics) file → ICS: Export as ICS File. Prompts for an output path and writes a standalone .ics file. This does not create a live-linked preview — it is a one-time export.


Settings reference

Setting Default Description
ics.syncOnSave false Auto-sync .ics → .cs on save.
ics.displayIcsOnly false Replace .cs editors with editable ICS views. Requires ICS Pro.
ics.liveUpdateCSharpFromPreview false Push ICS edits back to the C# editor while typing. Requires ICS Pro.
ics.autoSaveCSharpFromPreview false Save paired C# after successful live updates. Requires live update and ICS Pro.
ics.protectUserCSharpFiles true Ask before overwriting .cs files that don't look generated.
ics.generatedFileMarker "<auto-generated" Text that marks a .cs file as safe to overwrite.
ics.removeBraces false Remove property accessor braces ({ get; set; } → indented lines).
ics.removeIfConditionParentheses false Strip parentheses from if/else if conditions.
ics.matchLineNumbers false Insert blank lines in ICS so line numbers match the source C#.
ics.tabWidth unset Optional spaces-per-tab override. Leave unset to use the nearest .editorconfig tab_width; ICS always uses spaces.
ics.enableDiagnostics true Show ICS parse errors and generated-C# diagnostics in the Problems panel. Disable if you see false positives from missing project references.

Changing conversion options (removeBraces, etc.) refreshes all open ICS previews.


Commands reference

Command Description
ICS: Open C# as ICS Open the selected or active .cs file as a live ICS preview.
ICS: Toggle ICS View Switch the active file between raw C# and ICS preview.
ICS: Apply Preview to C# Write the current ICS preview back to its paired .cs file.
ICS: Refresh ICS Preview Reload an open, clean preview from its paired C# file.
ICS: Revert Preview from C# Discard preview edits after confirmation and reload from C#.
ICS: Show Paired C# File Open the C# file paired with the active ICS file or preview.
ICS: Show Conversion Diagnostics Validate the active ICS document and open the Problems panel.
ICS: Copy Generated C# Convert the active ICS document and copy the generated C# to the clipboard.
ICS: Format ICS Document Canonicalize the active ICS document through the converter. The standard Format Document shortcut also works.
ICS: Export as ICS File Save a one-time copy of a .cs file as a standalone .ics file.
ICS: Sync Current File to C# Convert the active .ics file and write its paired .cs file.
ICS: Generate C# for Workspace ICS Files Convert every .ics file in the workspace after confirmation.
ICS: Validate Workspace ICS Files Check every workspace .ics file and publish errors to the Problems panel.
ICS: Restart Converter Restart the language server and rebuild open previews.
ICS: Open Control Panel Open the ICS extension control panel.
ICS: Enter License Key Activate and store a Lemon Squeezy ICS Pro license key.
ICS: Refresh License Re-check the saved ICS Pro license key.
ICS: Deactivate License Release this machine's Lemon Squeezy activation and remove its locally stored license data.
ICS: Upgrade to Pro Open the configured Pro purchase URL.
ICS: Report Issue Prepare a local diagnostic for review, then optionally copy it and open the public issue form.

Keyboard shortcuts:

  • Ctrl+K I (Cmd+K I on Mac): Toggle ICS View.
  • Ctrl+Alt+S (Cmd+Option+S on Mac): Apply Preview to C#.
  • Ctrl+Alt+R (Cmd+Option+R on Mac): Refresh ICS Preview.
  • Shift+Alt+F (Shift+Option+F on Mac): VS Code's standard Format Document, now backed by the ICS formatter.

Workspace-wide generation, validation, preview reversion, and converter restart remain Command Palette actions without default shortcuts.


License, product terms, and privacy

  • Software license — Elastic License 2.0.
  • Product terms — output rights and Free/Pro tier conditions.
  • Privacy notice — local processing and Pro-license data flow.

Lucid Programming claims no ownership of source code, ICS files, or generated C# processed or produced using the extension.


Troubleshooting

"Open C# as ICS" shows nothing / no preview appears

Check the Output panel (Ctrl+Shift+U) and select ICS Language Server from the dropdown. Converter errors are reported there.

The extension installs its own .NET 10 runtime, so system-wide dotnet is not required. If automatic runtime installation fails, run .NET Install Tool: Show Installation Log from the Command Palette and check network or proxy settings.

Diagnostics show false errors (e.g. CS0122 inaccessible member)

The diagnostic pass runs Roslyn on the generated C# without loading a project file, so it cannot resolve types from other assemblies. Set "ics.enableDiagnostics": false to suppress these.

Conversion options are not applying

Options are read per-file scope. If you set them in workspace settings but open a file outside the workspace, VS Code uses user-level settings. Confirm the correct scope in Settings (Ctrl+,).

Reporting bugs

Run ICS: Report Issue from the Command Palette or the ICS control panel. The diagnostic opens locally first and is never included in the GitHub URL. Review or edit it, then choose whether to copy it and open the public support tracker. Do not submit proprietary source, license keys, or customer information.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft