Almasix for VS Code / Cursor / VSCodium
0.4.0 — native Idea parity driven by smith ide:index --json
(same intelligence as Almasix Idea),
not LSP by default.
Split from the former monorepo almasix-dev/ide-support.
JetBrains lives in almasix-dev/almasix-idea.
Features
- Prism (
.prism.html) highlighting + snippets + dotenv language
- Prism file icon (language icon + optional Almasix File Icons theme)
- Completions for routes, views, config, env, components, gates, columns, …
- Go to Definition / Find References / Rename for indexed call-site symbols
- Hover docs + unknown-symbol / Prism structure diagnostics
- Document links (Ctrl/Cmd-hover underline) on navigable strings
- Almasix activity-bar Symbols tree
- Almasix: New… / New Model… QuickPicks (
smith make:*)
- Tasks:
serve, migrate, test, queue:work
- Status bar:
Almasix · N routes · M views
- Optional legacy LSP when
almasix.useLsp is true (default false)
See PARITY.md for parity notes and shared limitations.
Install
Install the extension (table above).
Open an Almasix app (bootstrap/app.py). Ensure:
smith ide:index --json | head
Optional: smith ide:install to write .vscode/settings.json /
extensions.json.
Prism file icons
The extension contributes the official Prism mark (media/prism.svg) as the
prism-html language icon.
Explorer icons still come from your File Icon Theme. Themes like Seti /
Material Icon Theme usually match the trailing .html and show an HTML icon
for *.prism.html. To use the Prism mark in the explorer:
Command Palette → Preferences: File Icon Theme → Almasix File Icons, or
Keep your theme and associate the compound extension (Material Icon Theme):
"material-icon-theme.files.associations": {
"*.prism.html": "blade"
}
(or another MIT icon name you prefer until Material Icon Theme ships a
first-party prism.html mapping)
Settings
| Setting |
Default |
Purpose |
almasix.pythonPath |
"" |
Interpreter for smith / optional LSP |
almasix.smithPath |
"" |
Override smith binary |
almasix.useLsp |
false |
Also start legacy almasix-lsp |
Develop / sideload
npm install
npm run compile # tsc --noEmit + esbuild → out/extension.js
npm test # vitest
npm run package # → almasix-0.x.x.vsix
npm run package syncs Prism assets from prism/ then runs @vscode/vsce package.
Release
Create a GitHub Release on a vX.Y.Z tag. The publish workflow
builds the VSIX, attaches it to the Release, and publishes to both the
Visual Studio Marketplace and Open VSX
(so Cursor / VSCodium can find it in Extensions search).
Secrets (Actions):
| Secret |
Purpose |
VSCE_PAT |
Azure DevOps PAT with Marketplace Publish for publisher almasix |
OVSX_PAT |
Open VSX token from user-settings/tokens |
One-time Open VSX setup (before the first publish):
Sign in at open-vsx.org (Eclipse account).
Create a token; store it as the OVSX_PAT repo secret.
Create the publisher namespace once:
npx ovsx create-namespace almasix -p "$OVSX_PAT"
Docs
Framework docs: Editor setup.