https://github.com/codewiththiha/merustmar_playground
https://github.com/codewiththiha/merustmar_playground
Last synced: 3 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/codewiththiha/merustmar_playground
- Owner: codewiththiha
- Created: 2026-04-22T16:27:35.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-20T15:10:45.000Z (14 days ago)
- Last Synced: 2026-05-20T20:21:36.079Z (13 days ago)
- Language: TypeScript
- Size: 183 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Merustmar Playground
A browser-based IDE for the Merustmar programming language — a language that uses Myanmar script as its syntax.
## What It Is
Merustmar is an interpreted language where keywords, control flow, and built-in functions are written in Burmese — for example `ထား` for variable declaration, `တကယ်လို့` for conditionals, `ပတ်` for loops, and `ရေး` for print. The playground lets you write and run Merustmar code directly in the browser via a compiled WebAssembly engine.
## Features
- Syntax-highlighted code editor with line numbers
- Auto-indent on Enter, two-space Tab insertion
- Built-in example files (hello world, variables, functions, conditionals, loops)
- User-created files, persisted to localStorage
- Resizable output terminal panel
- Keyboard shortcut to run: Cmd+Enter (Mac) / Ctrl+Enter (Windows/Linux)
- Responsive layout with mobile sidebar support
## Tech Stack
- React 19 with TypeScript
- Vite 8 with the React Compiler (Babel)
- Tailwind CSS v4 (vite plugin)
- WebAssembly (Rust-compiled Merustmar engine)
## Project Structure
```
src/
lib/
types.ts FileData interface
constants.ts Built-in examples, storage keys
storage.ts localStorage helpers
highlight.tsx Syntax highlighting logic
components/
Header.tsx Top bar
TabBar.tsx Open file tabs
Editor.tsx Code editor (line numbers + textarea + highlight overlay)
Terminal.tsx Output panel with resize handle
FileItem.tsx Single file row
FileExplorer.tsx Sidebar file browser
App.tsx State, hooks, and layout
main.tsx Entry point
```
## Getting Started
```bash
npm install
npm run dev
```
Then open `http://localhost:5173`.
## Build
```bash
npm run build
```
Output goes to `dist/`.