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 are watched, so an npm install upgrade
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.