Backtrace-LS
LSP server that shows failed assertion messages as diagnostics in your code.
Additional features:
- Backtraces are parsed to mark any stack frame locations inline.
- You can use code actions to navigate between failure, stack frames and context.
Works out of the box in Helix (or any editor with an LSP client):

Installation
Editor Setup
Try out without installing by opening the demo project with Helix:
You should see the failing assertions inline next to test code.
Helix (~/.config/helix/languages.toml):
[]
= "backtrace-ls"
[[]]
= "rust"
= ["backtrace-ls", "rust-analyzer"]
Neovim:
vim..
Configuration
The language server auto-detects the test runner from your project files (e.g., Cargo.toml, package.json, go.mod).
Create .backtrace-ls.toml in your project root to customize behavior:
# Explicitly specify the test runner (optional)
# If not set, auto-detected from project files
= "cargo-test"
# Pass extra arguments to the test command
= ["--workspace", "--lib"]
# Show diagnostics for the entire function instead of just the assertion line
= false
CLI options:
# Explicitly specify runner (overrides auto-detection)
# Set workspace root for detection
# Run in text mode with file watching
Supported runners:
- Rust:
cargo-test,cargo-nextest - JavaScript/TypeScript:
jest,vitest,node-test,deno - Go:
go-test - PHP:
phpunit - C++:
gtest,catch2
Note: If multiple project types are detected, use --runner or the runner config option to specify which one to use.
Contributing
You can debug more easily by running in --text and --verbose mode:
License
MIT