Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>EXPRESS LanguageNew to Visual Studio Code? Get it now.
EXPRESS Language

EXPRESS Language

lilr

|
11 installs
| (0) | Free
Language support for EXPRESS (ISO 10303-11) schema files (.exp), including syntax highlighting, diagnostics, go-to-definition, completion, and semantic linking for entities, types, attributes, and WHERE/DERIVE expressions.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

EXPRESS Language for VS Code

A Visual Studio Code extension that provides language support for EXPRESS (ISO 10303-11), the schema definition language used in STEP and building-information models such as IFC.

Open any .exp file to get syntax highlighting, semantic analysis, and IDE navigation powered by a Langium-based language server.

Features

Syntax highlighting

EXPRESS source is highlighted using a TextMate grammar. Keywords, literals, comments, and identifiers are distinguished in the editor. The extension recognizes both uppercase and lowercase keyword spellings common in EXPRESS schemas.

Editor integration

  • Bracket matching for (), [], and {}
  • Auto-closing pairs for brackets and string quotes
  • Line and block comments (// and /* */)

Language Server Protocol (LSP)

The extension launches a dedicated language server when you open an EXPRESS file. Standard LSP features are provided through Langium:

Feature Description
Diagnostics Unresolved references and other link errors appear in the Problems panel
Go to definition Jump from a reference to its declaration (entity, type, attribute, function, local variable, etc.)
Document symbols Browse declarations in the current file
Completion Context-aware suggestions while typing

Semantic linking

Beyond basic name resolution, the language server understands EXPRESS-specific scoping and type structure:

  • Declarations — entities, types, functions, constants, and enumeration items
  • Attributes — direct attributes, inherited attributes, inverse relations, and redeclared supertype attributes
  • Local scope — variables in algorithms, RULE bodies, QUERY expressions, REPEAT loop indices, and ALIAS statements
  • Expression context — attribute access on SELF, subtype operands, function-call results, and indexed qualifiers (e.g. U[2].DirectionRatios)
  • DERIVE / WHERE rules — references inside constraint and derivation expressions, including nested QUERY and USEDIN aggregates
  • Enumerations — enumeration literals, including case-insensitive matching where applicable
  • Document-scoped lookup — entity and type resolution prefers symbols in the current schema document to avoid cross-file ambiguity in large workspaces

The implementation is validated against real-world schemas, including large IFC EXPRESS files.

Getting started

Install EXPRESS Language from the VS Code Extensions view, then open any file with the .exp extension.

Supported file types

Extension Language ID
.exp express

Requirements

  • Visual Studio Code 1.67.0 or newer

Known limitations

  • Performance — Very large schemas (tens of thousands of lines) may take noticeable time to analyze on each edit. Optimization is planned for future runtime improvements.
  • Validation — Custom semantic validation rules are minimal today; most Problems panel feedback comes from unresolved references during linking.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft