languages/rust: fix rustaceanvim DAP adapter (#1283)

Align codelldb adapter setup with rustaceanvim’s built-in logic.
Add languages.rust.dap.backend option to choose between codelldb
and lldb-dap adapters.
This commit is contained in:
Ching Pei Yang 2025-12-13 14:17:31 +01:00 committed by GitHub
commit 2fe8be4b6c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 33 additions and 5 deletions

View file

@ -621,3 +621,9 @@
[JudahZF](https://github.com/JudahZF):
- Added gitFiles mapping option to telescope
[Ring-A-Ding-Ding-Baby](https://github.com/Ring-A-Ding-Ding-Baby)
- Aligned `codelldb` adapter setup with [rustaceanvim]s built-in logic.
- Added `languages.rust.dap.backend` option to choose between `codelldb` and
`lldb-dap` adapters.

View file

@ -87,6 +87,19 @@ in {
type = package;
default = pkgs.lldb;
};
adapter = mkOption {
type = enum ["lldb-dap" "codelldb"];
default = "codelldb";
description = ''
Select which LLDB-based debug adapter to use:
- "codelldb": use the CodeLLDB adapter from the vadimcn.vscode-lldb extension.
- "lldb-dap": use the LLDB DAP implementation shipped with LLVM (lldb-dap).
The default "codelldb" backend generally provides a better debugging experience for Rust.
'';
};
};
extensions = {
@ -191,11 +204,20 @@ in {
${optionalString cfg.dap.enable ''
dap = {
adapter = {
type = "executable",
command = "${cfg.dap.package}/bin/lldb-dap",
name = "rustacean_lldb",
},
adapter = ${
if cfg.dap.adapter == "lldb-dap"
then ''
{
type = "executable",
command = "${cfg.dap.package}/bin/lldb-dap",
name = "rustacean_lldb",
}''
else let
codelldb = pkgs.vscode-extensions.vadimcn.vscode-lldb.adapter;
codelldbPath = "${codelldb}/bin/codelldb";
liblldbPath = "${codelldb}/share/lldb/lib/liblldb.so";
in ''require("rustaceanvim.config").get_codelldb_adapter("${codelldbPath}", "${liblldbPath}")''
},
},
''}
}