Diagnostics

The extension reports problems in real time. Diagnostics appear as squiggles in the editor and are listed in the Problems panel (Ctrl+Shift+M).

Syntax Diagnostics

Detected immediately by the ANTLR4 parser:

  • Missing or mismatched braces, brackets, and parentheses.

  • Invalid or unexpected tokens.

  • Incomplete declarations.

Semantic Diagnostics

Multiple analysis passes check semantic correctness:

  • Pass 1 — Symbol Table: duplicate declarations within the same scope.

  • Pass 2 — Extensions and Imports: unresolved extend targets, kind mismatches, and unresolved import paths.

  • Pass 3 — Reference Resolution: undefined types, unresolved base types, circular inheritance chains.

Lint Rules

Optional style and quality checks. Each rule can be enabled or disabled in .pssconfig.json or VS Code settings.

Rule

Default

Description

no-empty-constraint

enabled

Warn on empty constraint blocks.

no-unused-field

enabled

Warn on fields never referenced.

naming-convention

enabled

Suggest fixes for identifiers that violate naming conventions.

max-activity-depth

enabled

Warn on activities nested beyond a configurable depth.

no-unreachable-branch

enabled

Warn on branches that can never be taken.

Set pss.lint.enabled to false to disable all lint checks.

Semantic Tokens

AST-aware syntax highlighting beyond the TextMate grammar. Token types and modifiers are applied based on the resolved semantic meaning of each identifier — distinguishing, for example, type declarations from type references, and rand fields from regular fields.