ExpressionEngine Plus
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.
| |