Separan — Language Support for VS Code
The complete Visual Studio Code environment for Separan 1.0. Write, understand, run, and review label-structured Separan programs with rich editor support that works locally—without a separate language-server process.
Named boundaries make control flow readable to humans and verifiable by tools. The extension understands those boundaries across an entire workspace and adds the navigation, analysis, refactoring, execution, and review tools expected from a modern language environment. Everything needed for Separan developmentIntelligent editing
Multi-file projects
Diagnostics and Quick Fixes
Run, test, and review
Why labels matterSeparan gives important structures an explicit name at both boundaries:
Names such as Separan is designed for code that humans must understand and take responsibility for—even when AI helped write it. 🚀 Quick Start1. Install the VS Code extension
2. Install the native Separan runtimeBuild or install the native executable and make 3. Create a
|
| Command | Shortcut | Purpose |
|---|---|---|
| Separan: Run File | - | Execute .sep file |
| Separan: Check Current File | - | Save and parse-check the active .sep file |
| Separan: Diagnose Runtime | - | Verify the selected native executable and show its help output |
| Separan: Run Current Function | - | Run the zero-argument function under the cursor through a temporary native wrapper |
| Separan: Run Tests in Current File | - | Run every zero-argument function whose name begins with test_ |
| Separan: Go to Matching Label | Ctrl+Shift+] | Jump to closing label |
| Separan: Go to Label | - | Browse all labeled blocks |
| Separan: Copy AI Edit Scope | - | Copy scope instruction for AI |
| Separan: Verify AI Edit Scope Against HEAD | - | Verify AI stayed in scope |
| Separan: Show Structural Diff | - | See structural changes |
🌳 Structure Explorer
Open the Separan icon in the Activity Bar to see the active file as a checked, navigable structure:
SEP:main
└─ :active_user if • modified
├─ Reads (1)
│ └─ user.active
├─ Writes (1)
│ └─ message
└─ Calls (1)
└─ notify
The tree follows the cursor and opens a block when clicked. It shows only
direct syntactic reads, writes, and calls for each block, without executing the
program. Git-backed files also show added, modified, and removed structures
compared with HEAD.
⚙️ Configuration
{
"separan.executablePath": "separan", // Native Separan executable
"separan.runtimeArguments": [], // Arguments before source/--check
"separan.environment": {}, // Extra process environment variables
"separan.autoCloseLabels": true, // Auto-complete block closers
"separan.inlayHints.types": true // Lightweight local type hints
}
Run and check commands use VS Code process tasks. They start in the active file's workspace folder, appear in the integrated terminal, and use the configured native executable, arguments, and environment without shell interpolation.
🔐 Use Cases
Useful where review boundaries matter:
- 💰 Financial Systems - Every transaction block labeled and verified
- 🔒 Security Code - Auth blocks verified automatically
- 🏥 Healthcare - Scope-focused review for sensitive code
- 🌐 Infrastructure - Cloud automation you can audit
Key advantage: When your AI writes code, you get parser-backed evidence of whether it modified anything outside the approved scope. This assists review; it does not by itself establish regulatory compliance.
📚 Learn More
📝 Requirements
- VS Code 1.75.0 or later
- Native Separan executable available on PATH or configured with
separan.executablePath - Git (for Structural Diff feature)
🏷️ About Labels
Every block in Separan has an explicit name:
if condition :my_check ← opening label
do_something()
endif:my_check ← must match!
while running :main_loop ← opening label
process()
endwhile:main_loop ← must match!
SEP:authenticate ← the named logic boundary is the structure identity
verify_credentials()
END_SEP:authenticate ← must match!
This is not just style—it's enforced by the language. Mismatches are caught immediately.
💡 Pro Tips
- Use descriptive labels -
:payment_scopeis better than:p1 - Nested labels work - Each block gets its own identity
- Japanese labels OK - Use
:認証チェックif you prefer - Verify often - Run "Verify AI Edit Scope" before committing
- Tag related functions - Use
@notificationwhen semantic scope crosses block/file boundaries
🐛 Issues & Feedback
Install from the Visual Studio Marketplace
This v0.6 extension works with the Separan v0.2-alpha language. Structure Explorer, structural diff, and AI edit-scope verification are implemented.