Skip to content

Guides

Editor support

Completion, documentation on hover and errors as you type for isoloom.yml, in VS Code, JetBrains IDEs, Neovim and Zed, from the Isoloom JSON Schema.

Isoloom publishes a JSON Schema for isoloom.yml, generated from the same model isoloom validate uses. With it, your editor colors what's wrong as you type (an unknown field, a misspelled OS, a version that isn't 1), completes field names and values, and shows each field's documentation on hover.

The schema lives at https://www.isoloom.com/schema/v1.json (isoloom schema prints it too). A spec points to it with its first line, which isoloom import compose and every example already have:

# yaml-language-server: $schema=https://www.isoloom.com/schema/v1.json
version: 1
name: invoice-portal

That line is all most editors need.

VS Code

Install Red Hat's YAML extension. The first line above is enough; to apply the schema to every isoloom.yml without it, add to your settings:

{
  "yaml.schemas": {
    "https://www.isoloom.com/schema/v1.json": ["isoloom.yml", "isoloom.yaml"]
  }
}

JetBrains IDEs

The first line works with the built-in YAML support. Or map it once in Settings → Languages & Frameworks → Schemas and DTDs → JSON Schema Mappings: the schema URL, for the file pattern isoloom.yml.

Neovim, Zed, Helix

They use the same YAML language server (yaml-language-server), which reads the first line. To map the files instead, give it the same yaml.schemas setting as VS Code.

What the schema checks

Field names and types, the format version, kebab-case names, UPPER_SNAKE_CASE inputs, network addresses, known OS names and absolute volume paths. Some rules need the whole file (overlapping networks, addresses taken twice, dependency cycles): isoloom validate checks those.