Full IDE support for the English Programming Language

| Feature |
Description |
| 🎨 Semantic Highlighting |
Lexer-accurate token colors from the Language Server (v2) — keywords, functions, classes, types — layered over TextMate so English words are colored only where they're truly keywords, never inside strings or comments |
| 🧩 Embedded Languages |
Full HTML/CSS/JS highlighting inside triple-quoted strings (""" … """) and SQL highlighting inside query strings — so the web markup, styles, scripts, and queries embedded in EPL apps are colored, not flat |
| 🔤 String Interpolation |
$name and ${expr} inside strings are highlighted with correct EPL syntax — a literal $ that isn't a template is left untouched, exactly as the language treats it |
| 🔍 Real-time Diagnostics |
Error detection powered by EPL's Language Server Protocol |
| 💡 Code Completion |
725+ stdlib function signatures with documentation |
| 📖 Hover Documentation |
Function signatures, parameter types, and descriptions on hover |
| ✏️ Token-aware Rename |
Safe workspace rename (F2) that only touches real identifiers — never matches inside strings or comments |
| 🔗 Find References |
Token-aware find-all-references across the workspace |
| ▶️ Run from Editor |
Execute .epl files directly with Ctrl+Shift+R |
| ⚡ Bytecode VM Backend |
Run with the bytecode VM (the default epl run engine) — verified parity with the interpreter, including real closures / capturing lambdas as of v10.1.0 |
| 🔧 Type Checking |
Static type analysis via epl check |
| 📐 Formatting |
Auto-format EPL source files |
| 🧪 Linting |
Code quality analysis |
| 📊 Profiling |
Performance profiling from the editor |
| 👀 Watch Mode |
Re-run on save, with configurable per-run timeout |
| ⚡ Error Diagnostics |
epl fix with Rust-style context window, 55+ offline patterns, --fix auto-correction |
| 🩺 Doctor |
Environment health check (epl doctor) |
pip install eplang
The extension requires the epl CLI on your system PATH. If it's not found automatically, set epl.lsp.path in VS Code settings.
| Command |
Shortcut |
Description |
EPL: Run Current File |
Ctrl+Shift+R |
Run the active .epl file in the terminal |
EPL: Run Current File with Bytecode VM |
— |
Execute via the bytecode VM (epl vm) |
EPL: Type Check Current File |
Ctrl+Shift+K |
Run EPL's static type checker |
EPL: Format Current File |
— |
Format using the EPL formatter |
EPL: Build Current File |
— |
Compile to native executable |
EPL: Lint Current File |
— |
Lint for code quality issues |
EPL: Profile Current File |
— |
Profile execution performance |
EPL: Watch Current File |
— |
Re-run on save |
EPL: Serve Current File |
— |
Start production web server |
EPL: Deploy Current File |
— |
Generate deployment configs (k8s/aws/gcp/azure/docker) |
EPL: Fix Errors |
— |
Error diagnostics with 55+ offline patterns and auto-fix |
EPL: Run Doctor |
— |
Environment health check |
| Setting |
Default |
Description |
epl.lsp.enabled |
true |
Enable the Language Server for diagnostics and completions |
epl.lsp.path |
"epl" |
Path to the epl CLI binary |
epl.strictMode |
false |
Enable strict type checking mode |
epl.serve.port |
8000 |
Default port for epl serve |
epl.serve.observability |
false |
Auto-attach /_health, /_ready, /_metrics endpoints |
epl.watch.timeout |
"" |
Per-run timeout for epl watch (seconds, or none). Empty = use CLI default (uncapped since v9.0.0). |
VS Code Extension (TypeScript)
│
▼
LSP Client (vscode-languageclient)
│
▼ stdin/stdout
EPL Language Server (Python)
└── epl/lsp_server.py
├── Diagnostics (real-time error detection)
├── Completions (keyword + stdlib suggestions)
├── Hover (function signatures + docs)
└── Formatting (epl/formatter.py)
| Issue |
Solution |
epl command not found |
Install EPL: pip install eplang, then restart VS Code |
| LSP not starting |
Check epl.lsp.path setting; verify epl lsp runs in terminal |
| No syntax highlighting |
Ensure file extension is .epl |
| Diagnostics not updating |
Restart the Language Server: Ctrl+Shift+P → "Developer: Restart Extension Host" |
cd vscode-extension
npm install
npx @vscode/vsce package
This creates a .vsix file you can install via Extensions: Install from VSIX... in VS Code.