Files
storybook/tree-sitter-storybook
Sienna Meridian Satterwhite 37793cea0d fix(deps): update dependencies and fix all compilation errors
Updated dependencies to latest versions causing breaking changes:
- logos: 0.14 -> 0.16
- lalrpop: 0.21 -> 0.23
- thiserror: 1.0 -> 2.0
- petgraph: 0.6 -> 0.8
- notify: 6.0 -> 8
- toml: 0.8 -> 1.0.2
- tree-sitter (grammar): 0.20 -> 0.26

Fixed compilation issues:
1. logos 0.16: Added allow_greedy for unbounded repetitions in lexer
2. lalrpop 0.23: Changed from process_current_dir() to process()
3. tree-sitter 0.26: Updated bindings to use &Language reference

Also fixed Zed extension:
- Removed local highlights.scm override that had diverged from source
- Added regression test to prevent future divergence
2026-02-16 23:49: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