Files
storybook/tree-sitter-storybook
Sienna Meridian Satterwhite c49b00a2dc feat(grammar): add type system nodes to tree-sitter
Added grammar rules for v0.3 type system declarations:
- concept_declaration: semicolon-terminated base type
- sub_concept: enum and record forms with dot notation
- concept_comparison: nested pattern matching with variant_pattern
- any_type: named node for the 'any' keyword
- template species extension: optional ': Species' syntax

Updated query files:
- highlights.scm: new keywords and named field highlights
- outline.scm: concept/sub_concept/concept_comparison in outline
- indents.scm: indentation for new brace-delimited nodes

Fixed pre-existing query issues:
- Replaced invalid repeat_node reference with decorator_node
- Removed invalid '?' punctuation reference

Added comprehensive test corpus (type_system.txt) covering:
- concept declaration (simple and multiple)
- sub_concept enum and record forms
- concept_comparison with any/is conditions
- template with species extension
- full combined example
2026-02-14 14:29:29 +00:00
..

tree-sitter-storybook

Tree-sitter grammar for the Storybook narrative DSL.

Overview

This is a Tree-sitter grammar for Storybook, a domain-specific language for narrative design and character development. The grammar provides syntax highlighting, code navigation, and other editor features through Tree-sitter.

Features

  • Syntax highlighting for all Storybook constructs
  • Symbol outline for navigating characters, templates, relationships, etc.
  • Bracket matching including special handling for prose blocks
  • Auto-indentation support

Installation

For development

# Install dependencies
npm install

# Generate parser
npm run build

# Run tests
npm run test

For Zed editor

This grammar is integrated into the Zed Storybook extension. See the zed-storybook directory for the extension.

Grammar Structure

The grammar supports the following top-level declarations:

  • use - Import statements
  • character - Character definitions
  • template - Reusable field templates
  • life_arc - State machines for character development
  • schedule - Daily schedules and routines
  • behavior - Behavior trees for AI
  • institution - Organizations and groups
  • relationship - Multi-party relationships
  • location - Places and settings
  • species - Species definitions with templates
  • enum - Enumeration types

Special Features

Prose Blocks

The grammar includes an external scanner (written in C) to handle prose blocks:

---backstory
This is a prose block that can contain
multiple lines of narrative text.
---

Expression Support

Full support for expressions in life arc transitions:

on self.age >= 18 and self.location is wonderland -> adult_state

Testing

The grammar includes comprehensive tests. Run them with:

tree-sitter test

To test parsing a specific file:

tree-sitter parse path/to/file.sb

License

MIT