Skip to content

0.1.2

Latest

Choose a tag to compare

@dereuromark dereuromark released this 20 Jul 12:09

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 (^ text under 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 fmt over the buffer, with optional format-on-save).
  • Build system: ctrl+b lints 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