All specs
Display · snippet

Snippet

Code block with an optional copy-to-clipboard affordance.

Anatomy

Single line:

─ bash ──────────────────
│ npm install @caret/cli
──────────────

Multi-line with line numbers:

─ typescript ────────────
1 │ import { spinner } from 'caret'
2 │
3 │ await spinner('Building…',
4 │   () => build())
──────────────

Usage

snippet({
  code: 'npm install @caret/cli',
  language: 'bash',
})

snippet({
  code: 'const x = 1\nconst y = 2',
  language: 'typescript',
  lineNumbers: true,
  copyToClipboard: true,
})

Options

KeyTypeDefaultDescription
codestringCode content
languagestring?Language label on top rule
lineNumbersboolean?autoShow line numbers
copyToClipboardboolean?falseCopy code to clipboard
widthnumber?min(80, cols)Display width

Differences from codeBlock

Feature`codeBlock``snippet`
Language labelNoYes (top rule)
Copy actionNoOptional
Line numbersAlwaysAuto (multi-line only)
Use caseCode displayCopy-ready samples

Out of scope

Syntax highlighting (terminal color only)

Editable code (use prompt.editor)

Diff view (use diff)