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.feedfiles - IntelliSense — completions for globals,
exp:tags, and tag parameters - Snippets —
eeif,eeentries,eeifel,eecomment, and more (typeeeto 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.jsonto 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.feedfiles - IntelliSense — completions for globals,
exp:tags, and tag parameters - Snippets —
eeif,eeentries,eeifel,eecomment, and more (typeeeto 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.jsonto 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.