Vex Language - VS Code Extension
Status: ✅ Globally Installed
Extension ID: meftunca.vex-language
Version: 0.1.5
🚀 Quick Start
Check Status
./check_status.sh
Install/Update
./install.sh
Reload VS Code
Cmd+Shift+P → "Developer: Reload Window"
📚 Documentation
✨ Features
Current (v0.1.2)
- ✅ Syntax Highlighting - Full Vex v0.1.2 syntax with all new features
- ✅ File Icons - New
.vx file icons with light/dark variants (contribute via "Vex File Icons" theme)
- ✅
unsafe blocks for raw pointer operations
- ✅ Trait bounds syntax (
<T: Display>)
- ✅
interface keyword support
- ✅ Extended types: f128, str, byte, unit, nil
- ✅ HashMap, HashSet, String types
- ✅ Language Server (LSP) - Real-time diagnostics with exact positions
- ✅ Trait bounds validation errors
- ✅ Unsafe block tracking
- ✅ Generic type inference
- ✅ Code Formatter - Auto-formatting with unsafe/defer/go support
- ✅ Extended Type Support - i128, u128, f16, f128, error, Map, Set, Channel, Vec, Box
- ✅ Builtin Functions - 50+ builtin functions including memory ops, LLVM intrinsics, reflection
- ✅ Code Snippets - Comprehensive snippets for all language features
- ✅ Vex Dark Theme - Custom color scheme
- ✅ Commands - Restart Language Server
Coming Soon
- 🚧 Hover type information
- 🚧 Go to definition
- 🚧 Auto-completion
- 🚧 Code actions (quick fixes)
🔍 Current Installation
# Extension location (symlink)
~/.vscode/extensions/vex-language-0.1.2
→ /Users/mapletechnologies/Desktop/big_projects/vex_lang/vscode-vex
# LSP server
~/.cargo/target/release/vex-lsp (3.2 MB)
# Status
✅ Extension globally installed
✅ TypeScript compiled (out/extension.js)
✅ LSP server built
✅ All v0.1.2 features supported
✅ Trait bounds enforcement
✅ Unsafe block support
⏳ Waiting for .vx file to activate
📋 Quick Commands
# Development
cd client && npm run compile # Recompile TypeScript
cargo build --release -p vex-lsp # Rebuild LSP server
# Testing
code test.vx # Open test file
code --list-extensions | grep vex # Verify installation
# Maintenance
./check_status.sh # Check everything
./uninstall.sh # Remove extension
🧪 Test It
# 1. Create test file
cat > test_syntax_error.vx << 'EOF'
fn main(): i32 {
let x = "missing semicolon"
return 0;
}
EOF
# 2. Open in VS Code
code test_syntax_error.vx
# 3. Expected result
# Line 2: Red squiggle at "missing semicolon"
# Message: "Expected ';' after let statement"
# Position: test_syntax_error.vx:2:32
🔧 Development Mode
Since extension is symlinked, changes reflect immediately:
# 1. Edit source
vim client/src/extension.ts
# 2. Compile
cd client && npm run compile
# 3. Reload VS Code
# Cmd+Shift+P → "Developer: Reload Window"
No reinstall needed! 🎉
File Icons
This extension provides a small file icon theme so .vx files show a Vex icon in the Explorer. To enable it:
- Cmd+Shift+P →
Preferences: File Icon Theme
- Choose
Vex File Icons from the list
If you still do not see the icons, try: Reload Window (Cmd+Shift+P → Developer: Reload Window).
📊 Architecture
vscode-vex/ # Extension source (symlinked)
├── package.json # Extension manifest
├── client/src/extension.ts # TypeScript client
├── out/extension.js # Compiled output
├── syntaxes/vex.tmLanguage.json # Syntax rules
├── snippets/vex.json # Code snippets
└── themes/vex-dark.json # Color theme
~/.cargo/target/release/vex-lsp # Rust LSP server
├── Parse .vx files
├── Generate diagnostics
└── Communicate via stdio
VS Code
├── Loads extension from ~/.vscode/extensions/
├── Spawns vex-lsp process
├── Shows diagnostics as red squiggles
└── Sends hover/completion requests
🐛 Troubleshooting
Extension not found?
ls -la ~/.vscode/extensions/ | grep vex
# If missing: ./install.sh
LSP not starting?
ls -lh ~/.cargo/target/release/vex-lsp
# If missing: cargo build --release -p vex-lsp
Syntax highlighting not working?
# Check language mode (bottom right)
# Should show: "Vex"
# Manually set: Cmd+Shift+P → "Change Language Mode" → "Vex"
Changes not reflecting?
cd client && npm run compile
# Then reload VS Code
📝 Version History
v0.1.1 (Current - January 2025)
- ✅ Extended primitive types (i128, u128, f16, error)
- ✅ Collection types (Map, Set, Channel, Vec, Box)
- ✅ Option/Result constructors (Some, None, Ok, Err)
- ✅ Goroutine support (go keyword)
- ✅ Switch and defer statements
- ✅ 50+ builtin functions (memory, strings, UTF-8, reflection, LLVM intrinsics, compiler hints)
- ✅ Enhanced code snippets for all new features
- ✅ Complete v0.1.1 language specification support
v0.2.0
- ✅ LSP integration with exact error positions
- ✅ Parser span tracking (file:line:column)
- ✅ Real-time diagnostics
- ✅ Symlink installation
v0.1.0
- ✅ Basic syntax highlighting
- ✅ Code snippets
- ✅ Vex Dark theme
🎯 Next Steps
- Test in VS Code - Open any
.vx file
- Check Output panel - "Vex Language Server"
- Try syntax errors - Should show red squiggles
- Test snippets - Type
main and press Tab
Need Help?
- Check:
./check_status.sh
- Read:
GLOBAL_INSTALLATION.md
- Logs: VS Code → Output → "Vex Language Server"
Ready to use! 🚀