Files
storybook/tree-sitter-storybook
Sienna Meridian Satterwhite 9c18bfa028 feat(lang): rename concept_comparison to definition (v0.3.2)
Renames the `concept_comparison` keyword to `definition` across the
entire codebase for better readability and conciseness.

Changes:
- Tree-sitter grammar: `concept_comparison` node → `definition`
- Tree-sitter queries: highlights, outline, and indents updated
- Zed extension highlights.scm updated to match
- Lexer: `Token::ConceptComparison` → `Token::Definition`
- Parser: `ConceptComparisonDecl` rule → `DefinitionDecl`
- AST: `Declaration::ConceptComparison` → `Declaration::Definition`,
  `ConceptComparisonDecl` struct → `DefinitionDecl`
- All Rust source files updated (validate, names, convert, references,
  semantic_tokens, symbols, code_actions, hover, completion)
- `validate_concept_comparison_patterns` → `validate_definition_patterns`
- Example file and test corpus updated
- Spec docs: created SBIR-v0.3.2-SPEC.md, updated TYPE-SYSTEM.md,
  README.md, SBIR-CHANGELOG.md, SBIR-v0.3.1-SPEC.md
2026-02-23 20:37:52 +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