Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MSO Conditional CommentsNew to Visual Studio Code? Get it now.
MSO Conditional Comments

MSO Conditional Comments

Jörn Berkefeld

|
105 installs
| (0) | Free
IntelliSense for MSO (Outlook) conditional comments in HTML email — hover translations, completions, and more.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MSO Conditional Comments — VS Code Extension

IntelliSense for MSO (Outlook) conditional comments in HTML email — hover translations, completions, and inline diagnostics.

Features

Hover translations

Hover over any MSO conditional comment to see a plain-English translation of its condition.

<!--[if gte mso 14]>

Hovering shows: MSO Conditional — Visible to: Outlook 2010 and later (MSO ≥ 14)

Inline diagnostics

Errors and warnings appear directly in the editor without requiring an ESLint setup:

Diagnostic Severity Example
Invalid condition syntax Error <!--[if mos 16]> — typo in keyword
Unknown operator Error <!--[if newer mso 16]> — newer is not valid
Unknown version Error <!--[if gte mso 13]> — version 13 does not exist
Opener without closer Warning <!--[if mso]> with no matching <![endif]-->
Closer without opener Warning <![endif]--> with no preceding opener

Completions

Type <!--[if or <![if to trigger snippet completions for the most common MSO conditional patterns:

Trigger Description
mso-all Target all Outlook versions
mso-gte Target Outlook greater than or equal to a version
mso-not Hide from all Outlook versions
mso-hidden-start Downlevel-hidden block — hidden from Outlook
mso-hidden-end Close a downlevel-hidden block

Supported file types

HTML, AMP, SSJS, AMPscript, and Handlebars files (any file VS Code identifies as html, ampscript, sfmc, ssjs, or handlebars).

Settings

Setting Type Default Description
msoConditionals.diagnostics.enable boolean true Show inline errors and warnings. Disable if you prefer diagnostics from eslint-plugin-mso-email instead.

Valid Outlook versions

MSO version Outlook product
9 Outlook 2000
10 Outlook 2002
11 Outlook 2003
12 Outlook 2007
14 Outlook 2010
15 Outlook 2013
16 Outlook 2016, 2019, and 365

Valid operators

Operator Meaning
gte greater than or equal
gt greater than
lte less than or equal
lt less than
eq equal

Companion tools

  • eslint-plugin-mso-email — lint MSO conditionals, MSO CSS, VML, and layout tables in CI or in editors without this extension.
  • mso-conditional-parser — the underlying parser, usable as a standalone npm package.

Telemetry

This extension sends anonymous usage telemetry to help prioritise improvements. It records only:

  • Activation — that the extension started, plus which known SFMC-related extensions are installed alongside it (booleans only).
  • Diagnostics usage — how many times MSO diagnostics ran and the total number of diagnostics produced (counts only — never your file contents, comments, or any identifiers). This aggregate is sent at most every five minutes, and once more on shutdown if a non-empty aggregate remains.

No personally identifiable information, file contents, or credentials are ever collected. Events are anonymous (keyed by VS Code's stable, non-PII machine id) and sent to a PostHog project hosted in the EU. The full event catalogue is in telemetry.json.

Telemetry is governed solely by VS Code's global telemetry setting. To opt out, set telemetry.telemetryLevel to off in your settings — the extension checks this before every send and stops immediately when it changes.

License

MIT

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