snacks picker for dap
This commit is contained in:
parent
6f56fa264c
commit
07487ff91a
@ -123,7 +123,46 @@ return {
|
||||
require('dap.ext.vscode').json_decode = require('utils.json_workaround').decode_json
|
||||
|
||||
local pythonVenv = require('utils.python_venv')
|
||||
local snacks = require('snacks')
|
||||
local dap = require('dap')
|
||||
|
||||
local function get_all_dap_configurations()
|
||||
require('dap.ext.vscode').load_launchjs()
|
||||
local configs = {}
|
||||
|
||||
for filetype, entries in pairs(dap.configurations or {}) do
|
||||
for _, cfg in ipairs(entries) do
|
||||
table.insert(configs, {
|
||||
label = cfg.name or '[No name]',
|
||||
desc = string.format('Type: %s | Filetype: %s', cfg.type, filetype),
|
||||
config = cfg, -- store actual config separately
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
return configs
|
||||
end
|
||||
|
||||
local function pick_dap_configuration()
|
||||
local items = get_all_dap_configurations()
|
||||
|
||||
snacks.picker({
|
||||
items = items,
|
||||
prompt = 'DAP Configurations',
|
||||
confirm = function(picker, item)
|
||||
picker:close()
|
||||
local config = item.config
|
||||
if config then
|
||||
dap.run(config)
|
||||
else
|
||||
vim.notify('Invalid DAP config', vim.log.levels.ERROR)
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Create a Neovim command for convenience
|
||||
vim.api.nvim_create_user_command('PickDapConfig', pick_dap_configuration, {})
|
||||
function loadConfigs()
|
||||
require('dap.ext.vscode').load_launchjs()
|
||||
-- Make sure we use the correct python env even for the configs from launch.json
|
||||
|
Loading…
x
Reference in New Issue
Block a user