Diagnostics

Template well-formedness checking and script-aware error reporting inside ISML - and the setting that toggles ISML linting

The ISML language server reports problems on two layers: the markup (template well-formedness, via the HTML language engine) and the script (expression and <isscript> errors, via the script engine).

Markup Diagnostics

Template-structure problems are surfaced as you edit - for example malformed markup and unrecognized attributes on ISML tags - so structural mistakes show up in the editor and the Problems panel rather than at render time.

ISML linting is controlled by a single setting:

settings.json
{
  "intellij-sfcc.isml.linter": true
}
  • intellij-sfcc.isml.linter - boolean, default true. Turns ISML template validation on or off. Disable it if you prefer to lint ISML with an external tool.

Script Diagnostics in Expressions

Because ${ … } expressions and <isscript> blocks are analyzed as real script, the type-aware checks from the Scripting LSP apply inside templates too - calling a method that doesn't exist on a dw.* type, a syntax error in an expression, and similar mistakes are flagged in place.

<isprint value="${pdict.product.notAMethod()}" />
<!--                            ~~~~~~~~~~ flagged: not a member of dw.catalog.Product -->

The ambient template variables (pdict, Resource, URLUtils, StringUtils, out, the loop status) are pre-declared, so they never produce false "undefined" errors. See Scripting in ISML.

On this page