VS Code Extensions
ExpressionEngine Plus

ExpressionEngine Plus

by moringm

ExpressionEngine template language support for VS Code — syntax highlighting, IntelliSense, and snippets without breaking other extensions.

Downloads

17

Rating

— (0)

Version

1.0.0

Last updated

May 07, 2026

ExpressionEngine template language support for VS Code — syntax highlighting, IntelliSense, and snippets that work alongside other extensions.

Features

  • Syntax highlighting for EE tags, variables, conditionals, comments, and operators in .html, .xml, and .feed files
  • IntelliSense — completions for globals, exp: tags, and tag parameters
  • Snippets — eeif, eeentries, eeifel, eecomment, and more (type ee to see all)
  • Auto-close tags — typing } after an EE tag pair automatically inserts the closing tag
  • Path completions — file/folder suggestions inside {embed="..."}, {path=...}, and other EE path parameters
  • EE comment toggle — Cmd+/ (Mac) / Ctrl+/ (Windows/Linux) uses {!-- --} when the line contains EE syntax, <!-- --> otherwise
  • Third-party addon support — add an addon.json to your addon folder for custom completions

Why not the original?

The original ExpressionEngine extension registers .html files as a custom expressionengine language, which breaks:

  • Path Intellisense
  • IntelliSense for CSS class names
  • Auto Rename Tag
  • Color Highlight
  • CSS Peek

among others. This extension injects EE syntax into the standard HTML grammar instead, so .html files remain html — all other extensions continue to work normally.

Settings

Setting Default Description
expressionengine.suggest.basic true Enable/disable EE completions
expressionengine.autoClosingTags true Auto-insert closing tags after }
expressionengine.templatesPath ${rootPath} Root path for path completions inside EE tags (embed, path, template, etc.) — set this to your EE templates folder
expressionengine.thirdPartyAddonPath ${rootPath}/httpdocs/system/user/addons/ Path to third-party addons folder for custom completions

Snippets

Prefix Description
eeif {if} block
eeifel {if}/{if:else} block
eeifelseif {if}/{if:elseif}/{if:else} block
eeentries {exp:channel:entries} pair
eenav Channel entries navigation loop
eecomment {!-- --} comment
eelayout {layout} tag
eesetvar {layout:set} variable block
eeembed {embed} tag
eeloginform Member login form
eecommentform Comment form
eecomments Comment entries
eesearch Search results
eecontact Contact form
eerss RSS feed
eevar EE variable
eepath {path} tag
eeurltitle {url_title_path} tag

Credits

Inspired by jrrdnx/expressionengine.

Features

  • Syntax highlighting for EE tags, variables, conditionals, comments, and operators in .html, .xml, and .feed files
  • IntelliSense — completions for globals, exp: tags, and tag parameters
  • Snippets — eeif, eeentries, eeifel, eecomment, and more (type ee to see all)
  • Auto-close tags — typing } after an EE tag pair automatically inserts the closing tag
  • Path completions — file/folder suggestions inside {embed="..."}, {path=...}, and other EE path parameters
  • EE comment toggle — Cmd+/ (Mac) / Ctrl+/ (Windows/Linux) uses {!-- --} when the line contains EE syntax, <!-- --> otherwise
  • Third-party addon support — add an addon.json to your addon folder for custom completions

Why this fork?

The original extension registers .html files as expressionengine language, which breaks:

  • Path Intellisense
  • IntelliSense for CSS class names
  • Auto Rename Tag
  • Color Highlight
  • CSS Peek

among others. This extension injects EE syntax into the standard HTML grammar instead, so .html files remain html — all other extensions continue to work normally.

Settings

Setting Default Description
expressionengine.suggest.basic true Enable/disable EE completions
expressionengine.autoClosingTags true Auto-insert closing tags after }
expressionengine.templatesPath ${rootPath} Root path for path completions inside EE tags (embed, path, template, etc.) — set this to your EE templates folder
expressionengine.thirdPartyAddonPath ${rootPath}/httpdocs/system/user/addons/ Path to third-party addons folder for custom completions

Snippets

Prefix Description
eeif {if} block
eeifel {if}/{if:else} block
eeifelseif {if}/{if:elseif}/{if:else} block
eeentries {exp:channel:entries} pair
eenav Channel entries navigation loop
eecomment {!-- --} comment
eelayout {layout} tag
eesetvar {layout:set} variable block
eeembed {embed} tag
eeloginform Member login form
eecommentform Comment form
eecomments Comment entries
eesearch Search results
eecontact Contact form
eerss RSS feed
eevar EE variable
eepath {path} tag
eeurltitle {url_title_path} tag

Credits

Original extension by Jarrod Nix.

Related extensions