Carve
Sublime Text package for the Carve markup language (.crv)
Details
Installs
- Total 4
- Win 1
- Mac 2
- Linux 1
| Sep 1 | Aug 31 | Aug 30 | Aug 29 | Aug 28 | Aug 27 | Aug 26 | Aug 25 | Aug 24 | Aug 23 | Aug 22 | Aug 21 | Aug 20 | Aug 19 | Aug 18 | Aug 17 | Aug 16 | Aug 15 | Aug 14 | Aug 13 | Aug 12 | Aug 11 | Aug 10 | Aug 9 | Aug 8 | Aug 7 | Aug 6 | Aug 5 | Aug 4 | Aug 3 | Aug 2 | Aug 1 | Jul 31 | Jul 30 | Jul 29 | Jul 28 | Jul 27 | Jul 26 | Jul 25 | Jul 24 | Jul 23 | Jul 22 | Jul 21 | Jul 20 | Jul 19 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Mac | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Readme
- Source
- raw.githubusercontent.com
Carve for Sublime Text
Syntax highlighting for the Carve markup language in Sublime Text 3 and 4.
Files with a .crv extension are highlighted automatically.
This package is authored from the maintained Carve TextMate grammar
(scope text.carve) so its scope names line up with existing color schemes.
Features
- Headings (
#…######) - Inline mnemonics:
/italic/,*bold*,_underline_,~strike~,=highlight=(single=),{^sup^},{,sub,},`code` - Links, autolinks (
<https://...>,<a@b.com>), reference and cross-reference links, inline spans - Images in all three forms:
,![alt][ref]and![alt][] - Lists, task lists (
- [ ]/- [x]), ordered lists, definition lists (:) - Block quotes (
>) - Fenced code with language plus the fence header
"header"/[label]- and the code inside 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) - Raw passthrough fences (
```=html), kept verbatim and never highlighted as code - Divs (
:::) with"title"/[label]; the eight Tier-1 admonition types get a scope of their own, distinct from a custom container, and so do the bare::: figurecomposite-figure opener, the::: |line block and the::: \local hard-break block - Block and inline attributes (
{#id .class key="val"}) - Tables with
|,|=header rows,^rowspan,<colspan, and GFM|---|delimiter rows - Footnotes: references (
[^id]), inline notes (^[text]) and definitions ([^id]: body), whose body is inline content rather than a destination - Hard line breaks (a trailing
\) - Math: inline
$.., display$$.., andmath“ fences - Frontmatter (
---,---toml,---json), highlighted with the declared format's own syntax - Mentions (
@name), tags (#tag), symbols (:smile:) - Critic markup (
{+ins+},{-del-},{~a~>b~},{#comment#}) - Line comments (
%%), trailing comments, block comments (%%%) and delimited inline comments ({% ... %}) - Every verbatim payload stays verbatim: nothing inside a code block, raw block, code span, inline literal, math span or comment is coloured as markup
Install
Package Control
- Open the command palette (
Ctrl/Cmd+Shift+P). - Run Package Control: Install Package.
- Search for Carve and install it.
Manual
- Find your packages directory via Preferences > Browse Packages….
- Create a folder named
Carveinside it. - Copy the contents of this repository into that folder.
Recommended view settings
The package does not override any editor settings. Since Carve is
prose-oriented markup, settings like these tend to work well - open a .crv
file and pick Preferences > Settings - Syntax Specific to apply them for
Carve files only:
{
"tab_size": 2,
"translate_tabs_to_spaces": true,
"word_wrap": true,
"spell_check": true,
// Spell-check prose only: skip code spans, code blocks, raw passthrough,
// math, links, and attribute values.
"spelling_selector": "text.carve - markup.raw - meta.math - markup.underline.link - meta.attributes",
"trim_trailing_white_space_on_save": false
}
trim_trailing_white_space_on_save matters more here than in most languages:
trailing spaces inside a Carve code block are content and render inside <pre>.
Commands
Available from the command palette:
| Command | What it does |
|---|---|
| Carve: Go to Cross-Reference Target | Jumps from a </#id> under the cursor to the heading it points at (explicit {#id} attributes and derived heading slugs both resolve, case-insensitively, like Carve itself). |
| Carve: Format Buffer (carve fmt) | Runs carve fmt over the buffer. Formats unsaved content and keeps undo history. |
Both need the carve CLI on PATH for formatting (npm install -g @markup-carve/carve
or cargo install carve-lang). Configure in Preferences > Package Settings:
{
"carve_binary": "carve",
"carve_format_on_save": false
}
Build system
With a .crv file open, Tools > Build (ctrl+b) runs carve lint and the
reported problems are clickable, because carve prints file:line:column.
Tools > Build With… offers the other variants: lint the whole project,
carve fmt --check, carve fmt -w, render HTML to stdout or to a file, and an
ANSI terminal preview.
Snippets
Tab triggers for the constructs that are tedious to type by hand: note
(admonition), table, codegroup, listtable, figure (image + caption),
deflist, fn (footnote + definition), xref, code, fm (frontmatter),
math, spoiler. Typing an admonition or extension name (warning, tabs,
toc, mermaid, …) also offers a completion that expands the whole fence.
Running the syntax tests
See the development guide for running the syntax suite locally and maintaining the package.