VS Code extension for building APEX mini-apps — syntax highlighting, IntelliSense, a built-in simulator, and dev server integration.

Features
Syntax Highlighting
Full syntax highlighting for .axml and .acss files — the two languages used to build APEX mini-app templates and styles.
IntelliSense
- Auto-complete for all built-in APEX components (
view, text, button, scroll-view, image, input, swiper, and more)
- Attribute suggestions with type annotations
- Hover documentation showing component descriptions and attribute tables
- Go-to-definition for component and page references
Live Simulator
Open a phone-frame simulator directly inside VS Code. The simulator compiles your project on the fly and hot-swaps styles without a full reload.
Command Palette → APEX: Open Simulator or click the $(device-mobile) APEX Simulator button in the title bar.
Development Server
Start a local dev server that serves your compiled mini-app bundle to the APEX host app over the network.
APEX: Start Development Server → starts on port 3000 (configurable)
APEX: Stop Development Server → shuts it down
APEX: Preview on Device → shows the QR code / deep-link URL
Scaffolding Commands
APEX: Create New Mini-App — interactive wizard, produces a ready-to-run project
APEX: Generate Page — right-click a pages/ folder to add a new page (.axml, .js, .acss, .json)
APEX: Generate Component — right-click a components/ folder to scaffold a reusable component
Production Build
APEX: Build for Production — compiles and bundles the app into a .map package ready for distribution.
Getting Started
1. Install the extension
Search for APEX Mini-App Tools in the VS Code Extensions panel, or install with:
code --install-extension isw-apex.apex-ide
2. Install the CLI
npm install -g @qt-test/apex-cli
3. Scaffold a project
apex create my-first-app
cd my-first-app
code .
The extension activates automatically when it detects an app.json in your workspace root.
Project Structure
my-first-app/
├── app.json # App manifest (appId, pages list, window config)
├── app.js # App lifecycle (onLaunch, onShow, onHide)
├── app.acss # Global styles
├── pages/
│ └── index/
│ ├── index.axml # Template
│ ├── index.js # Page logic
│ ├── index.acss # Page-scoped styles
│ └── index.json # Page config
├── components/ # Reusable custom components
├── assets/ # Images and static files
└── package.json
AXML & ACSS Quick Reference
AXML — Template Language
AXML is a declarative markup language similar to HTML, designed for mini-app UIs.
<view class="container">
<text class="title">{{pageTitle}}</text>
<view a:for="{{items}}" a:key="id">
<text>{{item.name}}</text>
</view>
<button type="primary" onTap="handleSubmit">
Submit
</button>
</view>
Data binding uses {{expression}} syntax.
Directives: a:if, a:elif, a:else, a:for, a:key.
ACSS — Styling Language
ACSS is CSS with a responsive unit: rpx (responsive pixels, 750rpx = screen width).
.container {
padding: 32rpx;
background-color: #f5f5f5;
}
.title {
font-size: 36rpx;
font-weight: bold;
color: #1a1a1a;
}
Built-in Components
| Component |
Description |
view |
Generic container (<div> equivalent) |
text |
Inline or block text node |
button |
Tappable button with type variants (primary, default, warn) |
input |
Single-line text input |
textarea |
Multiline text input |
image |
Image with mode for crop/fit |
scroll-view |
Scrollable container (x or y axis) |
swiper |
Carousel / page-swiping container |
navigator |
Declarative navigation link |
web-view |
Embedded web content |
canvas |
2D drawing surface |
map |
Native map component |
Commands
| Command |
Description |
APEX: Create New Mini-App |
Scaffold a new mini-app project |
APEX: Generate Page |
Add a new page to an existing project |
APEX: Generate Component |
Add a new reusable component |
APEX: Start Development Server |
Start the local dev server |
APEX: Stop Development Server |
Stop the dev server |
APEX: Open Simulator |
Open the in-editor phone simulator |
APEX: Preview on Device |
Preview on a physical device via QR code |
APEX: Build for Production |
Compile to a distributable .map bundle |
APEX: Open Documentation |
Open the APEX developer docs |
Settings
| Setting |
Type |
Default |
Description |
apex.devServer.port |
number |
3000 |
Dev server port |
apex.devServer.autoOpen |
boolean |
true |
Open device preview automatically |
apex.validation.enable |
boolean |
true |
Enable live AXML diagnostics |
apex.simulator.deviceType |
string |
"phone" |
Simulator device frame (phone or tablet) |
Requirements
- VS Code 1.85 or later
- Node.js 18+ (for CLI scaffolding and dev server)
- APEX CLI (
npm install -g @qt-test/apex-cli)
Release Notes
0.1.2
- Bundled
@qt-test/apex-compiler into the VSIX — simulator no longer requires a local node_modules/
- Fixed esbuild native binary shipping inside the extension package
- Simulator compiles and hot-reloads without any additional setup
0.1.0
- Initial release
- AXML/ACSS syntax highlighting and IntelliSense
- Simulator panel, dev server integration, and scaffolding commands
License
MIT — see LICENSE