Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grimoire CSS expands both its core composition model and its tooling surface with Runebridge. This release improves scroll composition by adding argument-driven spell selection (
spellByArgs) and enabling parameterized scroll invocations insidescrolls[].spells(e.g.box=12px). On top of that, it introduces a Rust Analyzer, a feature-gated LSP server (stdio), and a first-party VS Code extension.Key Highlights
spellByArgsfor argument-driven spell selection and parameterized scroll usage insidescrolls[].spells.grimoire_css_lspexposes analyzer capabilities viaworkspace/executeCommandfor editor integration.fi): Machine-friendly JSON outputs for automation and for sharing the same "commands" between CLI and LSP.grim(alongsidegrimoire_css).Full Details
Scroll Composition Upgrades (Core)
Runebridge improves scroll authoring and composition in core configuration:
spellByArgs: Choose spell sets based on invocation arguments for more expressive, reusable scrolls.Parameterized scroll invocations inside
scrolls[].spells: You can now put invocations likebox=12pxdirectly intoscrolls[].spells.This matters because
extendonly supports inheriting by scroll name, while many real-world scrolls are parameterized. Example: you may have a scrollboxthat accepts args (box=12px). Previously you could not create a new scroll whosespellsincludebox=12px; now you can.These changes make large style systems easier to model and enable richer analysis/refactoring in IDE tooling.
Analyzer: Structured CSS Spell Intelligence
The new analyzer provides a reusable set of operations designed to be consumed by both the CLI and IDE clients:
LSP Server: IDE Commands over stdio
Runebridge introduces
grimoire_css_lsp(enabled with--features lsp), designed to be embedded by editor extensions.It focuses on
workspace/executeCommandto expose analyzer functionality in a stable, versioned command surface.Canonical command set includes (may evolve):
grimoirecss.explorerIndex,grimoirecss.entityDetailsgrimoirecss.index,grimoirecss.lint,grimoirecss.refs,grimoirecss.explain,grimoirecss.statsgrimoirecss.configSummary,grimoirecss.documentSpellsgrimoirecss.dryCandidates,grimoirecss.dryCreateScrollgrimoirecss.listScrolls,grimoirecss.listVarsVS Code Extension: First-party Editor Integration
The VS Code extension provides a UI and workflow layer on top of the LSP server:
fi: Scriptable CLI for AutomationThe
ficommand provides JSON output suitable for scripts, CI, and editor tooling. It intentionally mirrors LSP capabilities so that CLI and IDE can share the same mental model and (where appropriate) the same command semantics.Core Improvements
This release includes meaningful core work that improves correctness and clarity, and also benefits analysis tooling:
Migration Notes
For Users
lsp.For Contributors