@moirai/intellisense
A standalone VS Code extension package that provides Moirai template language intelligence for HTML files.
Features
- HTML completion for Moirai binding attributes
- Hover and go-to-definition support for component properties and stores
- HTML cursor-to-context mapping for
data-bind, data-on, data-model, data-for, data-if, data-attr, and data-key
- Type information extracted from companion
.ts component files
Binding semantics
Bare binding names resolve to the component instance (this). Use state.* to reference this.state.*. Stores stay storeName.*.
Quick tip: Bare names implicitly resolve to this — use state. for component state (recommended for two-way data-model bindings).
Setup
npm install
npm run build
Development
Open this folder in VS Code and press F5 to launch the Extension Development Host.
The provided .vscode/launch.json configuration also supports attaching to the server process on port 6009.
Commands
npm run build — compile the extension into out/
npm run watch — rebuild on file changes
Publishing
This repository includes a GitHub Actions workflow to package and publish the extension to the Visual Studio Marketplace.
Steps to publish manually or via CI:
- Set
publisher in package.json to your publisher id (replace your-publisher-id).
- Create a Personal Access Token (PAT) in Azure DevOps with Marketplace/Packaging publish permissions and save it as the repository secret
VSCE_PAT.
- Build and package locally:
npm ci
npm run build
npm run package
- Publish locally (will use
VSCE_PAT env var):
export VSCE_PAT="<your-pat>"
npx vsce publish
Or push a tag matching v*.*.* (for example v0.1.0) to trigger the workflow. The workflow will use the VSCE_PAT secret to publish.
See package.json for helper scripts and update the images/icon.png asset before publishing to provide a marketplace icon.
Notes
This package is designed to be a standalone IntelliSense extension for Moirai. It includes a language client, a language server, and a shared analyzer module.