The TextMate grammar for BAML (scopeName: source.baml), published as @boundaryml/baml-grammar.
This repository is a read-only mirror, generated from typescript2/pkg-grammar in the BAML monorepo. Do not edit it by hand; changes land here automatically when the grammar changes upstream. It is also the source GitHub Linguist vendors for .baml highlighting on github.com.
npm install @boundaryml/baml-grammarThe default export is a ready-to-use LanguageRegistration:
import { createHighlighter } from "shiki";
import baml from "@boundaryml/baml-grammar";
const highlighter = await createHighlighter({
themes: ["github-dark"],
langs: [baml],
});
highlighter.codeToHtml(code, { lang: "baml", theme: "github-dark" });The grammar is self-contained (it embeds no other language scopes), so no additional grammars need to be loaded.
Use the raw grammar JSON, plus the editor configuration (brackets, comments, auto-closing pairs):
import grammar from "@boundaryml/baml-grammar/baml.tmLanguage.json" with { type: "json" };
import languageConfiguration from "@boundaryml/baml-grammar/language-configuration.json" with { type: "json" };If your bundler cannot handle JSON import attributes (Metro/React Native, some Vite configs), use the default export instead: it is the same grammar inlined in a plain JS module.
import grammar from "@boundaryml/baml-grammar";| Path | Contents |
|---|---|
dist/index.js |
ESM module, default-exports the grammar (Shiki LanguageRegistration) |
grammars/baml.tmLanguage.json |
Raw TextMate grammar |
grammars/baml.sublime-syntax |
Sublime Text syntax (also consumed by syntect/bat) |
syntaxes/baml.xml |
KDE KSyntaxHighlighting definition (Kate, Pandoc via skylighting) |
samples/baml.sample |
Canonical BAML sample used by grammar registries |
language-configuration.json |
VS Code style language configuration |
The paths above (and scopeName: source.baml) are frozen API: external registries fetch them by URL. Renames are breaking changes. SUPPORT.md tracks where the grammar has landed.
Apache-2.0
This repository is a read-only mirror, generated from typescript2/pkg-grammar in the BAML monorepo by its sync-grammar-mirror workflow. Do not edit files or open pull requests here — changes land automatically when the grammar changes upstream. Report issues in BoundaryML/baml.