Language support for Phaze — .phaze files, the
DSL, and the JSX namespaces (use: / class: / bind: / phaze: / on:).
What you get
.phazelanguage support — file recognition, syntax highlighting for the four named fences (---page,---data,---state,---props) plus the bare---body-exit, with full TSX coloring inside the fences via embeddedsource.tsx. Bracket matching, comment toggling (⌘/), and snippet expansion all behave like.tsx.- IntelliSense via the bundled language server —
phaze-language-tools
runs as an LSP child process. You get hover types, completion, go-to-
definition, find-references, and TypeScript diagnostics inside
.phazefiles.@globaldeclarations insrc/app.phazeare auto-imported wherever they're referenced — bare names just work. - Snippet pack —
s/c/watch/watch&&/cblock/sasync/strigger/is/not/phazefrom the DSL;interval/timeout/cleanup/abortSignalfrom the core API;---state/---props/---page/---datafence blocks;@globalreference and declaration forms;use:/class:/bind:JSX namespaces. Works in.phaze,.tsx, and.jsxfiles.
Paired extensions
- Phaze Glow
— matching color theme with optional
text-shadowhalo runtime. Install both for the full Phaze visual identity. Either one works standalone — Phaze (this extension) on any theme, Phaze Glow on any source language.
Install
code --install-extension madenowhere.phaze-vscode
Or search "Phaze" by publisher madenowhere in the Extensions view.
Documentation
- phaze.build — primer, full API reference, the
per-package tooling stack, the
.phazeformat reference, and the@globalauto-import model. - GitHub source — extension manifest, the embedded TextMate grammar, the snippet pack.
- Issues — bug reports and feature requests.
Files in this extension
| File | Role |
|---|---|
package.json |
Manifest. Contributes the phaze language ID + TextMate grammar, the snippet pack for .phaze / .tsx / .jsx, and the LSP-client activation. |
language-configuration.json |
Brackets, comments, auto-close pairs, indentation — mirrors .tsx. |
syntaxes/phaze.tmLanguage.json |
TextMate grammar — three rules: named fence (---<label>), bare fence (---), TSX-body include for everything else. |
snippets/phaze.code-snippets |
~25 snippet entries covering the DSL idioms, fence forms, and JSX namespaces. |
src/extension.js |
Activation entry — launches phaze-language-server via vscode-languageclient, resolves the workspace's TypeScript SDK, wires the LSP. |