Skip to content

Change log ​

Notable changes to the xDBML language support extension.

The format is based on Keep a Changelog.

[0.7.2] ​

Follows xDBML 0.7.2.

Added ​

  • Source-to-target mapping: transformation, dialect and grain are colored as setting keys, as source_database and source_query already are.

[0.7.1] ​

Follows xDBML 0.7.1.

Added ​

  • EntityPartial and EntityGroup: colored as declaration keywords, as their DBML aliases TablePartial and TableGroup are.
  • Diagram view categories: Entities and EntityGroups are colored as declaration keywords before {, as Tables and TableGroups are.
  • Metadata EntityGroup: the kind is colored with Metadata.
  • x- custom properties: a quoted setting key with the x- prefix, "x-hackolade-id": '...', takes the color of an x_ custom property in the settings brackets.

[0.7.0] ​

Follows xDBML 0.7, whose DBML baseline moves from 3.13.6 to 10.3.1. The constructs DBML added in between take the colors of the constructs they resemble. Versions 0.6.6 and 0.6.7 of the language changed no highlighting, so the extension skips them.

Added ​

  • Metadata blocks: Metadata and the kind that follows it (Table, Column, Entity, View, ...) are colored as declaration keywords, only together, so an entity or a field may still be named metadata.
  • Sticky notes: Note is colored as a keyword before the name of a sticky note followed by settings brackets, a qualified name, or the colon form.
  • Data lineage: Dep is colored as a declaration keyword at the start of a line before :, {, [ or a name, so a field may still be named dep; dep is colored as a setting key in brackets; -> and <- are colored as the arrows of a dependency.
  • Optional marks: a relationship operator and its ? marks (>?, ?<, ?-?) are colored as one operator.
  • Records: records takes the block color before the ( of a column list and the [ of its settings as well as before {, and example the color of a setting flag.

[0.6.5] ​

Follows xDBML 0.6.5, which defines internal definitions (spec §15.8). Version 0.6.4 of the language changed no highlighting, so the extension skips 0.6.4.

Added ​

  • definitions block: definitions is colored as a block keyword when it opens the internal definitions of an entity, that is before {, as indexes, checks, constraints and records are. A field named definitions keeps the color of any other field name.

[0.6.3] ​

Follows xDBML 0.6.3, which defines diagram views (spec §18). Versions 0.6.2 of the language changed no highlighting, so the extension skips 0.6.2.

Added ​

  • DiagramView categories: Tables, Views, Containers, Schemas, TableGroups, SupertypeGroups and Notes are colored as declaration keywords when they open a list inside a DiagramView, that is before {. An entity or a field that carries one of these names keeps its color, as with the block keywords of 0.6.0.

[0.6.1] ​

Follows xDBML 0.6.1, where no keyword is reserved as a field name.

Fixed ​

  • A field named note: a line such as note varchar was colored as a Note declaration, with its type colored as the declared name. Note is now colored as a keyword only where it starts a note: before : or {, or before a name and { on the same line. A field named note takes the color of any other field name, as indexes, checks, constraints and records already did.

0.6.0 ​

Brings highlighting up to xDBML v0.6. The grammar is regenerated from the parser's keyword lists (parser/src/keywords.ts), so the editor colors the same words as the playground and the xdbml.org code blocks.

From this release on, the extension's version follows the xDBML version its grammar covers: 0.6.x highlights v0.6, and the patch number counts releases of the extension alone. Versions 0.4.0 and 0.5.0 are skipped; 0.3.0 was the previous release.

Added ​

  • Block keywords: constraints (v0.6, spec §10: an entity's primary key, unique keys and checks), indexes, checks and records are colored when they open a block inside an entity body. Earlier versions left them uncolored there; a field that carries one of these names is not colored.
  • v0.5 supertype groups: the SupertypeGroup declaration keyword and the setting keys supertype, completeness, exclusivity, strategy and merge (spec §12).
  • v0.4 relationships: the foreign_master flag and the setting keys constraint_type, source_role, target_role, source_verb and target_verb (spec §11.10 to §11.16).
  • Target-native type names: 72 common types of specific targets -- Oracle number, clob, raw; PostgreSQL serial, bytea, citext; SQL Server uniqueidentifier, datetimeoffset; Snowflake timestamp_ntz; BigQuery float64; Cassandra, Protobuf and ClickHouse integer types; geometry, geography, interval -- are colored like scalar types. Any other type name is still valid; it is simply not colored.

Changed ​

  • PUBLISH.txt, the maintainers' notes, no longer ships inside the package.
  • The README links to the current specification instead of v0.1.

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 .xdbml file -- 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), and lz-string is 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, as are now highlighted with a dedicated keyword.control.module.xdbml scope. These appear in v0.2's use/reuse ... from './path' { ... } directives (spec §26). The as keyword also serves DBML table- aliasing (Table users as u) under the same scope.
  • Entity-level checks block: the checks keyword (alongside the existing indexes) is recognized as a setting key. v0.2 §10 introduces it as an entity-level block of multi-column constraint expressions.
  • cloned_at directive setting: the v0.2 [cloned_at: '...'] metadata on use/reuse directives is recognized as a setting key.
  • inactive flag: 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 highlights Type as a declaration keyword and varchar as 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 // #region markers.
  • Language icon (visible in the status bar and language picker).
  • File association for .xdbml.

Spec under Apache License 2.0 · Examples under CC0 1.0