VSCode extension that provides intelligent autocomplete for JetRockets UI components based on component.yml definitions.
- Component autocomplete - Type
ui.to see all available components - Slot autocomplete - Slots like
ui.alert_titleare also suggested - Props autocomplete - After component name, get suggestions for available props
- Value autocomplete - Props with predefined values show dropdown (e.g.,
variant: :default) - Hover documentation - Hover over
ui.btnto see full documentation - Auto-refresh - Changes to
component.ymlfiles are detected automatically
<%= ui.| %>
↓
┌─────────────────────────────────┐
│ btn Button component │
│ alert Display messages │
│ card Card container │
│ badge Status badge │
│ icon Display SVG icons │
└─────────────────────────────────┘<%= ui.btn "Click", | %>
↓
┌──────────────────────────────┐
│ variant Symbol (:default) │
│ size Symbol (:md) │
│ url String (nil) │
│ rounded Boolean (false) │
│ block Boolean (false) │
└──────────────────────────────┘<%= ui.btn "Click", variant: :| %>
↓
┌─────────────┐
│ default │
│ outline │
│ secondary │
│ danger │
│ ghost │
│ link │
└─────────────┘Hover over any ui.component_name to see:
- Description
- Props table with types, defaults, and values
- Usage example
In VSCode settings (settings.json):
{
"jetrocketsUI.componentsPath": "app/components/ui",
"jetrocketsUI.helperPrefix": "ui."
}The extension reads component.yml files from your components directory and builds an in-memory index. The YAML structure expected:
name: Button
description: Button component for actions
props:
- name: variant
type: Symbol
default: ":default"
values:
- ":default"
- ":outline"
description: Visual style
slots:
- name: btn_icon
description: Icon slot
props:
- name: position
type: Symbol
values: [":left", ":right"]
accepts_html_attributes: true| Feature | Status |
|---|---|
| Component names | Yes |
Slot names (e.g., alert_title) |
Yes |
| Props with types | Yes |
| Props with values (enum) | Yes |
| Boolean props | Yes |
| String/Integer props | Yes |
class prop (when accepts_html_attributes: true) |
Yes |
| Hover documentation | Yes |
| File watching | Yes |
# Install dependencies
npm install
# Run tests
npm test
# Package
vsce packageMIT