# 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):

## Supported Test Runners
- Rust: `cargo test`, `cargo nextest`
- JavaScript: `Jest`, `Vitest`, Node Test Runner, `deno test`
- Go: `go test`
- PHP: `PHPUnit`
## Installation
```sh
cargo install backtrace-ls
```
## Editor Setup
Try out without installing by opening the demo project with Helix:
```bash
cd demo/rust
hx -v src/lib.rs
```
You should see the failing assertions inline next to test code.
Helix (`~/.config/helix/languages.toml`):
```toml
[language-server.backtrace-ls]
command = "backtrace-ls"
[[language]]
name = "rust"
language-servers = ["backtrace-ls", "rust-analyzer"]
```
Neovim:
```lua
vim.lsp.start({ name = "backtrace-ls", cmd = { "backtrace-ls" }, root_dir = vim.fn.getcwd() })
```
## Configuration
(Under construction)
Optional `.backtrace-ls.toml` in project root:
```toml
[overrides.override-name]
runner_name = "cargo-test"
extra_arg = ["--workspace"]
```
## Contributing
You can debug more easily by running in `--text` and `--verbose` mode:
```bash
cargo run -- --path demo/rust --text -v
```
## License
MIT