Stimeo UI Inspector
Live diagnostics for Stimeo UI stimeo--* markup in
HTML/ERB — the same engine as npx -y stimeo-ui check, running as you type.
Stimeo UI is a headless Stimulus UI framework for Ruby on Rails: behavior-only,
accessible components driven by HTML attributes.
- Unknown names with "Did you mean …?" hints: controllers, targets, values,
and
data-action methods.
- Structure: missing required targets, orphan targets.
- Accessibility: author-supplied ARIA the controller cannot add at runtime
(missing or invalid values), keyboard-focusability prerequisites, and
controller-managed ARIA you should not hardcode.
- Quick fixes (💡): unambiguous corrections — a typo'd controller/target/
action/idref token, a single-valued ARIA attribute — apply in one click.
- Completions: controller identifiers inside
data-controller and
data-action, target names inside data-stimeo--*-target, action methods
after # — all driven by the manifest, so they always match the installed
version.
- Hovers: the full authoring contract of any
stimeo--* identifier under
the cursor — targets (with required ones), value/action/event names, and the
accessibility, keyboard, and controller-managed-ARIA requirements the
Inspector checks.
No language server and no setup: the checker is bundled into the extension
and works out of the box. Diagnostics carry the same stable codes as the CLI
(unknown-controller, missing-aria, …), so data-stimeo-ignore opt-outs
behave identically.
Manifest resolution
Diagnostics, completions, and hovers are driven by the controller manifest,
resolved per document:
stimeo.manifestPath (explicit) — when set, always used (absolute, or
relative to a workspace folder).
- Nearest workspace install (preferred) — walking up from the document's
directory to its workspace root (ESLint-style), the first
node_modules/stimeo-ui/dist/inspector/manifest.json wins. A Rails app
nested inside a monorepo is checked against its own installed version,
not a sibling's. Single files opened without a workspace walk up to the
filesystem root.
- Bundled snapshot (fallback) — the manifest captured when the extension
was built.
A manifest whose shape the bundled engine cannot consume (e.g. a much older
package version) is skipped in favor of the next tier instead of breaking
diagnostics. Installed manifests and the file stimeo.manifestPath points at
are watched, so an npm install upgrade — or a rebuild of the manifest you
pointed the setting at — re-checks open documents automatically; if your setup
excludes node_modules from file watching (files.watcherExclude), run
“Stimeo UI: Reload manifest” from the command palette instead. The
"Stimeo UI" output channel logs which manifest is active.
Settings
| Setting |
Default |
Effect |
stimeo.enable |
true |
Toggle all features from this extension. |
stimeo.manifestPath |
"" |
Explicit manifest to check against; overrides automatic resolution. |
Commands
| Command |
Effect |
| Stimeo UI: Reload manifest |
Re-resolve the manifest and re-check open documents (see “Manifest resolution” above). |
Feedback
Bug reports and feature requests:
taiyaky/stimeo-ui/issues.
License
MIT © Stimeo Labs — the same license as the
stimeo-ui library itself.