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:
{
"intellij-sfcc.isml.linter": true
}intellij-sfcc.isml.linter- boolean, defaulttrue. 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.