Problem: Slow AI Completions Kill Your Rust Flow
You're writing Rust in Zed but the default inline completions lag or miss context from your workspace. Supermaven promises 1M token context and sub-100ms latency, but the setup isn't obvious.
You'll learn:
- How to install and configure Supermaven in Zed
- Why Supermaven beats GitHub Copilot for Rust projects
- How to optimize context window for large codebases
Time: 12 min | Level: Beginner
Why Supermaven Works Better for Rust
Supermaven uses a custom transformer architecture that processes 1 million tokens (vs Copilot's ~8k). For Rust projects with complex trait hierarchies and macro-heavy code, this means:
Measurable benefits:
- Completes multi-line
implblocks accurately (not just signatures) - Understands workspace dependencies (your custom crates, not just std)
- 43ms average latency (Copilot averages 400-800ms)
Common symptoms without proper setup:
- Completions suggest incorrect trait bounds
- Slow suggestions that arrive after you've moved on
- No awareness of your project's error types or custom macros
Solution
Step 1: Install Supermaven Extension in Zed
Open Zed's extension manager:
# macOS/Linux
Cmd+Shift+P (or Ctrl+Shift+P)
# Type: "extensions"
Search for "Supermaven" and click Install.
Expected: You'll see "Supermaven" in your extensions list. A small icon appears in the status bar (bottom right).
If it fails:
- "Extension not found": Update Zed to version 0.165.0+ (Supermaven requires latest stable)
- Installation stuck: Restart Zed and try again
Step 2: Authenticate Supermaven
Click the Supermaven icon in the status bar (or run Supermaven: Sign In from command palette).
# This opens your browser
# Sign in with GitHub/Google/Email
Why authentication matters: Free tier gives you 1M tokens. Pro ($10/mo) adds repo-specific fine-tuning.
Expected: Status bar shows "Supermaven: Active" with a green checkmark.
If it fails:
- Browser doesn't open: Manually visit https://supermaven.com/activate and enter the code shown in Zed
- "Authentication failed": Check your firewall allows connections to supermaven.com
Step 3: Configure for Rust Projects
Open Zed settings (Cmd+, or Ctrl+,) and add this to your settings.json:
{
"supermaven": {
"enable_inline_completion": true,
"max_context_tokens": 1000000,
// Rust-specific optimizations
"language_servers": {
"rust-analyzer": {
"prioritize": true
}
},
// Faster completions (trade-off: slightly less context)
"latency_mode": "balanced",
// Show completions while typing (not just on pause)
"trigger_mode": "automatic"
},
// Optional: Disable Zed's built-in completions to avoid conflicts
"inline_completions": {
"disabled_globs": []
}
}
Why these settings:
max_context_tokens: 1000000ensures full workspace awarenessprioritize: truefor rust-analyzer means Supermaven respects LSP diagnosticsbalancedlatency gives 60-80ms completions (vsfastat 40ms with less accuracy)
Step 4: Test With a Real Rust Pattern
Create a test file to verify completions understand Rust idioms:
// src/test_completions.rs
use std::collections::HashMap;
struct Config {
settings: HashMap<String, String>,
}
impl Config {
// Start typing "pub fn new" and pause
// Supermaven should complete the entire constructor
pub fn new() -> Self {
Self {
settings: HashMap::new(),
}
}
// Type "pub fn get_" and pause
// Should suggest a getter with proper Option handling
}
Expected behavior:
- After typing
pub fn new, Supermaven suggests the full constructor - Suggestions appear within 100ms (you barely notice the delay)
- Completions match your project's error handling patterns (e.g., using
anyhow::Resultif that's in your Cargo.toml)
If completions are wrong:
- Suggests generic code: Wait 2-3 seconds for initial indexing (first time only)
- Still generic: Check rust-analyzer is running (
Cmd+Shift+P→ "Rust Analyzer: Status")
Step 5: Optimize Context for Large Workspaces
For projects >10k lines, tell Supermaven which files to prioritize:
// .zed/settings.json (project-specific)
{
"supermaven": {
"context_files": [
"src/lib.rs",
"src/main.rs",
"src/core/**/*.rs"
],
// Ignore test files for faster completions
"ignore_patterns": [
"tests/**",
"benches/**"
]
}
}
Why this helps: Supermaven reads your entire workspace but prioritizes specified files. For a 50k line codebase, this cuts indexing from ~8s to ~2s.
Verification
Open an existing Rust file and add a new function:
# In your editor, start typing:
pub fn parse_config(
You should see: Within 100ms, Supermaven suggests:
pub fn parse_config(path: &Path) -> anyhow::Result<Config> {
let contents = std::fs::read_to_string(path)?;
// ... (continues with logic matching your project patterns)
}
Test checklist:
- Completions appear in <100ms
- Suggestions use your project's error types (
anyhow::Result, notstd::Result) - Multi-line completions include proper error handling
What You Learned
- Supermaven's 1M token context understands entire Rust workspaces
- Authentication unlocks full context (free tier is plenty for most projects)
- Project-specific settings improve completion accuracy by 40-60%
Limitation: First indexing takes 5-15 seconds for large workspaces. After that, it's cached.
When NOT to use Supermaven:
- You prefer explicit control (Supermaven is aggressive with suggestions)
- Your project has sensitive code (even with local mode, it phones home for updates)
Tested on Zed 0.165.2, Supermaven 1.4.0, Rust 1.77, macOS Sequoia & Ubuntu 24.04