Expand description
Snippet expansion module for reovim (#136).
Provides TextMate/LSP-compatible snippet expansion with intelligent tab stop navigation, placeholder mirroring, variable resolution, regex transforms, and choice support.
§Architecture
ast- Snippet element types (full EBNF grammar coverage)parser- Recursive descent parser (full TextMate/LSP grammar)engine- Active snippet tracking with position updatestransform- Regex transform execution with case modifiersvariables- Built-in variable resolver (TM_FILENAME, etc.)provider- Snippet provider trait and registryloader- JSON file loader (VSCode-compatible format)resolver- Mode key resolver for snippet navigation modestate- Per-client session extension statecommand- Command handlers (expand, jump next/prev, cancel)
§Commands
snippet:expand(<C-s>in insert mode) - Expand snippet at cursorsnippet:jump-next(<Tab>in snippet mode) - Next tab stopsnippet:jump-prev(<S-Tab>in snippet mode) - Previous tab stopsnippet:cancel(<Esc>in snippet mode) - Cancel snippet navigation
Modules§
- ast
- Snippet AST types covering the full VSCode/LSP EBNF grammar (#136).
- command
- Snippet command handlers (#136, #529).
- engine
- Active snippet engine (#136).
- ids
- Command and mode ID constants for the snippet module (#136).
- inheritance
- Filetype inheritance for snippet resolution (#529).
- loader
- JSON snippet file loader (#136).
- loader_
friendly - Friendly-snippets provider (#529).
- parser
- Recursive descent snippet parser (#136).
- project
- Project root detection for project-local snippets (#529).
- provider
- Snippet provider trait and registry (#136, #529).
- resolver
- Snippet mode key resolver (#136).
- state
- Per-client snippet session state (#136).
- transform
- Regex transform execution for snippet tab stops and variables.
- variables
- Variable resolution for snippet expansion (#136, Phase 3).
Structs§
- Snippet
Module - Snippet expansion module.
Functions§
- build_
registry - Build a snippet registry from the module data directory.