Beyond highlighting: embedded code languages, a symbol outline, commands, a build system, and snippets - plus three mis-scoping bugs fixed.
Fixes
- Raw fences (
=FORMAT) were parsed as code blocks with a language literally named=html, while%%%- which is a block comment - was treated as a raw block. - Block comment fences of four or more percent signs were mis-scoped as raw blocks.
- Cross-references (
</#id>), inline footnotes (^[note]) and caption lines (^ textunder an image or quote) had no rules at all. Captions were additionally mis-scoped as table captions. - Fenced code embedded
source.embedded.carve, a placeholder scope no syntax defines, so code got one flat colour and Sublime logged an embed error.
Improvements
- Code inside a fence is highlighted with Sublime's own syntax for that language - python, js/ts, rust, go, php, ruby, sql, shell, yaml, json, html, css and ~35 more.
- Frontmatter is highlighted with its declared format (yaml/toml/json).
- Headings feed the symbol list, so Goto Symbol (
ctrl+r) and the breadcrumb navigate by section. - Commands: Carve: Go to Cross-Reference Target (jumps
</#id>to its heading) and Carve: Format Buffer (carve fmtover the buffer, with optional format-on-save). - Build system:
ctrl+blints with clickable results; variants for project lint,fmt --check,fmt -w, HTML, and an ANSI preview. - Snippets and completions for admonitions, tables, list-table, code-group, figure with caption, definition lists, footnotes, cross-references, frontmatter, math, spoiler, tabs, toc, mermaid, chart.
Breaking (scopes)
All captions now use markup.caption.carve. The old markup.table.caption.carve and string.unquoted.caption.carve scopes are gone - update colour schemes that targeted them.
The carve CLI is optional and only needed for formatting and the build system.
Full Changelog: 0.1.1...0.1.2