ICS — Indented C# for Visual Studio
Edit C# using ICS (Indentation-based C# Syntax): a writable, brace-light view in which indentation expresses structure. The extension converts between C# and ICS while keeping ordinary .cs files as the canonical project sources.
The same file, with and without braces

Both panes are editable and stay in step. The .cs file remains the canonical source on disk; the ICS view presents the same code with indentation in place of structural braces.
Prerequisites
- Visual Studio 2022 17.x or Visual Studio 2026 18.x on x64 Windows.
- .NET Framework 4.8.
The extension includes a self-contained Windows x64 converter. No separate .NET installation or repository checkout is required.
Installation
Choose Download on this page, close Visual Studio, run the downloaded VSIX, and reopen Visual Studio. Commands appear under Tools, and the control panel is available under View > Other Windows > ICS.
Live C# ↔ ICS editing
Run ICS: Open C# as ICS, or press Ctrl+K, Ctrl+I, to open a writable ICS projection beside the active C# document.
- C# edits refresh the open ICS projection after a short debounce.
- Valid ICS edits update the paired C# editor after a short debounce.
- Updates change editor buffers first; disk writes happen only when you save or enable a Pro auto-save option.
- Incomplete input keeps the passive pane on its last verified version and marks it out of date. Synchronization resumes silently when conversion succeeds.
- If both panes change independently, neither overwrites the other. ICS: Resolve Preview Conflict lets you review and choose a side while preserving a local backup.
- Dirty projections are kept as local recovery drafts. ICS: Open Preview Recovery Folder lets you inspect them, and ICS: Clear Preview Recovery Data removes drafts and conflict backups after confirmation.
Conflict backups are retained for at most 30 days and limited to the newest 20 complete C#/ICS pairs and normally 100 MB. Recovery data stays under the current user's local application-data directory and is never uploaded automatically.
Other workflows
ICS-only mode
With ICS Pro active, enable Display ICS only under Tools > Options > ICS > General. Opening a C# file then shows its writable ICS projection, and validated saves write back to the canonical .cs file.
Standalone ICS files
If you keep .ics files on disk:
- ICS: Sync Current File to C# writes the paired
.cs file.
- ICS: Generate C# for Solution ICS Files synchronizes every standalone ICS file in the solution.
- ICS: Validate Solution ICS Files checks all solution ICS files.
- ICS: Convert Solution C# Files to ICS exports standalone ICS files from a solution.
- ICS: Export as ICS File performs a one-time export without creating a live projection.
The extension protects handwritten C# by asking before it overwrites a file that does not contain the configured generated-file marker.
Language support
The extension recognizes .ics files and provides syntax colorization, comment toggling, bracket matching, autoclosing, and region folding. Its language client also provides live diagnostics, hover information, completion, Go To Definition, Find All References, and native Format Document support.
Commands
| Command |
Purpose |
| ICS: Open C# as ICS |
Open a live, writable ICS projection. |
| ICS: Toggle ICS View |
Switch between C# and its ICS projection. |
| ICS: Apply Preview to C# |
Validate and update the paired C# buffer. |
| ICS: Resolve Preview Conflict |
Review competing edits and choose which side to keep. |
| ICS: Refresh ICS Preview |
Reload a clean projection from C#. |
| ICS: Revert Preview from C# |
Discard projection edits after confirmation. |
| ICS: Show Paired C# File |
Open the source paired with the active ICS projection. |
| ICS: Show Conversion Diagnostics |
Publish conversion diagnostics to the Error List. |
| ICS: Copy Generated C# |
Copy converted C# without modifying a file. |
| ICS: Format ICS Document |
Canonicalize the active ICS buffer. |
| ICS: Restart Converter |
Restart the server and restore open projection sessions. |
| ICS: Open Control Panel |
Open common editor, configuration, and licensing actions. |
| ICS: Report Issue |
Prepare a scrubbed local report before opening the public tracker. |
Default shortcuts:
- Ctrl+K, Ctrl+I — Toggle ICS View.
- Ctrl+Alt+S — Apply Preview to C#.
- Ctrl+Alt+R — Refresh ICS Preview.
Configuration
Open Tools > Options > ICS > General to control brace removal, optional if-condition parentheses, line-number matching, tab width, diagnostics, generated-file protection, standalone sync-on-save, ICS-only display, and automatic saving of paired C#.
Changing conversion options refreshes open projections. Converter command and Converter arguments are development and diagnostic overrides; normal installations use the bundled converter.
Free and Pro
Live in-memory C# ↔ ICS synchronization is free. ICS Pro enables:
- Display ICS only.
- Auto-save paired C# after each successful live update.
- Sync standalone ICS files on save.
After purchase, run ICS: Enter License Key. Run ICS: Deactivate License before transferring a limited activation to another machine. Successful validation is cached for up to 30 days, or until the license expires if earlier.
View pricing · Activation transfer policy
Privacy, terms, and output ownership
Conversion, language services, recovery, and diagnostics run locally. Only user-requested activation, validation, or deactivation contacts Lemon Squeezy. ICS does not claim ownership of source code, ICS files, or generated C# processed or produced using the extension.
Troubleshooting and bug reports
Use ICS: Restart Converter if the language service stops responding. Use ICS: Show Conversion Diagnostics to inspect conversion failures.
Run ICS: Report Issue to prepare a scrubbed diagnostic in a local editor. Review it before copying anything to the public support tracker. Do not submit proprietary source, license keys, paths, customer information, or other sensitive data.