Change log
Notable changes to the xDBML language support extension.
The format is based on Keep a Changelog.
0.3.0
Adds a one-click bridge from the editor to the playground.
Added
- Open in Playground command (
xDBML: Open in Playground). It opens the current.xdbmlfile -- or the current selection -- in the hosted playground at xdbml.org with the schema already loaded, so there is no copy and paste. Available from a button in the editor title bar, the editor right-click menu, and the command palette. The link uses the same lz-string#s=share format as the renderer and the HTTP render API, so it round-trips exactly.
Notes
- This is the extension's first release with runtime activation code. The bundle is built with esbuild at publish time (
vscode:prepublish), andlz-stringis bundled in, so the packaged extension stays self-contained.
0.2.0
Adds syntax highlighting for the constructs introduced in xDBML v0.2.
Added
- Module system keywords:
use,reuse,from,asare now highlighted with a dedicatedkeyword.control.module.xdbmlscope. These appear in v0.2'suse/reuse ... from './path' { ... }directives (spec §26). Theaskeyword also serves DBML table- aliasing (Table users as u) under the same scope. - Entity-level
checksblock: thecheckskeyword (alongside the existingindexes) is recognized as a setting key. v0.2 §10 introduces it as an entity-level block of multi-column constraint expressions. cloned_atdirective setting: the v0.2[cloned_at: '...']metadata onuse/reusedirectives is recognized as a setting key.inactiveflag: the v0.2[inactive]flag on Ref declarations (visualization-only deactivation, spec §11.9) is now categorized as a setting flag rather than a setting key, matching its no-value syntax. This is a minor scope correction; visually identical in most themes.
Notes
- Color settings on Ref and TableGroup (
[color: '#...']) were already highlighted by the existing setting-key vocabulary; no change needed. - v0.2 also adds scalar Named Types (
Type Email varchar [...], spec §14.7). The TextMate grammar already highlightsTypeas a declaration keyword andvarcharas a scalar type, so no new pattern is required -- the scalar form is highlighted via existing rules.
0.1.1
Maintenance release. See git history.
0.1.0
Initial release.
Added
- TextMate grammar for xDBML covering declaration keywords (Project, Container, Schema, Database, Keyspace, Namespace, Dataset, Bucket, Table, Entity, Collection, Record, Type, Edge, View, Enum, Ref, Note, TablePartial, TableGroup, DiagramView).
- Structural type keywords (object, struct, array, list, map, dict, dictionary, set, json, jsonb, variant) and polymorphism keywords (union, oneOf, anyOf, allOf).
- Scalar type names (51) and BSON type names (9).
- Setting flags (pk, primary, key, unique, null, not, required, increment) and setting keys (52 including AI-readiness, validation, and referential-action keys).
- Custom
x_*extension-point property highlighting. - Single and triple-quoted string literals, backtick expression literals, double-quoted identifiers, numeric and boolean literals, null constants.
- Line and block comments.
- Cardinality operators (
>,<,-,<>) in Ref declarations. - Language configuration: comment toggling, bracket matching, auto-closing pairs, block-comment continuation, fold regions via
// #regionmarkers. - Language icon (visible in the status bar and language picker).
- File association for
.xdbml.