Language Server Protocol implementation for Ananke typed holes.
This LSP server enables cross-editor support for Ananke's constraint-driven code generation and typed hole workflow. It provides real-time hole detection, fill suggestions, and progressive refinement capabilities.
- Hole Detection - Pattern and semantic analysis to find typed holes
- Fill Suggestions - AI-powered completions with confidence scores
- Code Actions - Quick fixes for filling, decomposing, and managing holes
- Code Lenses - Visual indicators showing hole status
- Diagnostics - Real-time feedback on constraint satisfaction
# From source
cargo install --path .
# Or build directly
cargo build --release
cp target/release/ananke-lsp /usr/local/bin/Use with ananke-nvim or configure directly:
require('lspconfig').ananke.setup({
cmd = { "ananke-lsp" },
filetypes = { "python", "typescript", "rust", "zig" },
})Install the ananke-intellij plugin.
Use the ananke-vscode extension (requires ananke-lsp binary in PATH).
Beyond standard LSP, this server implements typed hole operations:
| Method | Description |
|---|---|
ananke/detectHoles |
Detect typed holes in a document |
ananke/getFillSuggestions |
Get fill suggestions for a hole |
ananke/fillHole |
Fill a specific hole |
ananke/decomposeHole |
Break a hole into smaller holes |
ananke/inspectHole |
Get detailed hole information |
ananke/fillAllHoles |
Fill all auto-resolvable holes |
{
"jsonrpc": "2.0",
"id": 1,
"method": "ananke/detectHoles",
"params": {
"textDocument": { "uri": "file:///path/to/file.py" },
"includeSemantic": true
}
}Via LSP workspace/didChangeConfiguration:
| Setting | Default | Description |
|---|---|---|
ananke.enableSemanticDetection |
true |
AST-based hole detection |
ananke.minAutoFillConfidence |
0.8 |
Minimum confidence for auto-fill |
ananke.maxSuggestions |
5 |
Maximum fill suggestions |
ananke.enableDiagnostics |
true |
Show hole diagnostics |
cargo build
cargo test
RUST_LOG=ananke_lsp=debug cargo run- ananke - Core constraint engine (Zig/Rust)
- ananke-vscode - VS Code / Cursor extension
- ananke-nvim - Neovim plugin
- ananke-intellij - IntelliJ plugin
All Rights Reserved - Copyright (c) 2025 Rand Arete