Separan — Language Support for VS Code
Make AI-written code understandable and verifiable to humans. Language support for the label-structured Separan programming language. Separan at a glance
Related functions can also declare machine-readable semantic identity:
The label names the structure and its exact boundary. Even before using the tooling, a reader can see that this block handles an active user. The extension then checks that both endpoints agree and lets reviewers navigate or verify the same named scope. AI can generate code quickly. Humans still have to understand it, review it, and take responsibility for it. Separan gives every important structure an explicit, checked name, and this extension turns those names into navigation, explanations, structural diffs, and automatic scope verification. Labels such as 🎯 Why Separan?When AI writes code, humans first need to understand it and then verify it. Traditional languages make both tasks harder:
Separan makes verification explicit:
Now you can ask: "Did AI only modify inside The label also tells a human what the block means before any tool is opened. Separan treats human comprehension and machine verification as the same structural problem. ✨ Features
🚀 Quick Start1. Install the VS Code extension
2. Install the Separan reference runtimeInstall the Separan reference implementation from PyPI:
3. Create a
|
| Command | Shortcut | Purpose |
|---|---|---|
| Separan: Run File | - | Execute .sep file |
| 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 |
| Separan: Show AST | - | Debug: print syntax tree |
| Separan: Run Tests | - | Run language tests |
🌳 Structure Explorer
Open the Separan icon in the Activity Bar to see the active file as a checked, navigable structure:
main function
└─ :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.pythonPath": "python", // Python executable
"separan.autoCloseLabels": true, // Auto-complete block closers
"separan.inlayHints.types": true // Show inferred types
}
🔐 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
- Python 3.10 or later (with
separanpackage installed) - 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!
function:authenticate ← function name is its structure identity
verify_credentials()
end_function: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.
