From 3cdde122b697f15c12129775360f6e4af509bfee Mon Sep 17 00:00:00 2001 From: Sped0n Date: Sun, 29 Jun 2025 18:40:56 +0800 Subject: [PATCH 1/3] refactor(python): make mason optional during dap-python setup - Change Python debugger adapter path to first check for `debugpy-adapter` before falling back to `python` - Only attempt to get `debugpy` package if Mason registry is available Signed-off-by: Sped0n --- lua/astrocommunity/pack/python/init.lua | 29 ++++++++++++++++++------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/lua/astrocommunity/pack/python/init.lua b/lua/astrocommunity/pack/python/init.lua index 6e4c7ab59..83d1da324 100644 --- a/lua/astrocommunity/pack/python/init.lua +++ b/lua/astrocommunity/pack/python/init.lua @@ -101,17 +101,30 @@ return { dependencies = "mfussenegger/nvim-dap", ft = "python", -- NOTE: ft: lazy-load on filetype config = function(_, opts) - local path = vim.fn.exepath "python" - local debugpy = require("mason-registry").get_package "debugpy" - if debugpy:is_installed() then - path = vim.fn.expand "$MASON/packages/debugpy" - if vim.fn.has "win32" == 1 then - path = path .. "/venv/Scripts/python" + local path = function() + local ret = nil + + local ok, mason_registry = pcall(require, "mason-registry") + if ok then + local debugpy = mason_registry.get_package "debugpy" + if debugpy:is_installed() then + ret = vim.fn.expand "$MASON/packages/debugpy" + if vim.fn.has "win32" == 1 then + return ret .. "/venv/Scripts/python" + else + return ret .. "/venv/bin/python" + end + end + end + + ret = vim.fn.exepath "debugpy-adapter" + if ret == "" then + return vim.fn.exepath "python" else - path = path .. "/venv/bin/python" + return ret end end - require("dap-python").setup(path, opts) + require("dap-python").setup(path(), opts) end, }, }, From 4a9f3401736b5b862c027a349694452306b2de38 Mon Sep 17 00:00:00 2001 From: Micah Halter Date: Wed, 23 Jul 2025 15:17:15 -0400 Subject: [PATCH 2/3] refactor(python): clean up `nvim-dap-python` implementation --- lua/astrocommunity/pack/python/init.lua | 31 +++++++++---------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/lua/astrocommunity/pack/python/init.lua b/lua/astrocommunity/pack/python/init.lua index 83d1da324..2ac486bd6 100644 --- a/lua/astrocommunity/pack/python/init.lua +++ b/lua/astrocommunity/pack/python/init.lua @@ -101,30 +101,21 @@ return { dependencies = "mfussenegger/nvim-dap", ft = "python", -- NOTE: ft: lazy-load on filetype config = function(_, opts) - local path = function() - local ret = nil + local path - local ok, mason_registry = pcall(require, "mason-registry") - if ok then - local debugpy = mason_registry.get_package "debugpy" - if debugpy:is_installed() then - ret = vim.fn.expand "$MASON/packages/debugpy" - if vim.fn.has "win32" == 1 then - return ret .. "/venv/Scripts/python" - else - return ret .. "/venv/bin/python" - end - end - end - - ret = vim.fn.exepath "debugpy-adapter" - if ret == "" then - return vim.fn.exepath "python" + local mason_registry_avail, mason_registry = pcall(require, "mason-registry") + if mason_registry_avail and mason_registry.is_installed "debugpy" then + local debugpy_path = vim.fn.expand "$MASON/packages/debugpy" + if vim.fn.has "win32" == 1 then + path = debugpy_path .. "/venv/Scripts/python" else - return ret + path = debugpy_path .. "/venv/bin/python" end + else + path = vim.fn.exepath "debugpy-adapter" + if path == "" then path = vim.fn.exepath "python" end end - require("dap-python").setup(path(), opts) + require("dap-python").setup(path, opts) end, }, }, From 28f37237eaf51be2d5b54a670ae67eacada66fd6 Mon Sep 17 00:00:00 2001 From: Micah Halter Date: Wed, 23 Jul 2025 15:26:49 -0400 Subject: [PATCH 3/3] refactor(python): remove unnecessary logic in `nvim-dap-python` implementation --- lua/astrocommunity/pack/python/init.lua | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/lua/astrocommunity/pack/python/init.lua b/lua/astrocommunity/pack/python/init.lua index 2ac486bd6..c308b59ef 100644 --- a/lua/astrocommunity/pack/python/init.lua +++ b/lua/astrocommunity/pack/python/init.lua @@ -101,20 +101,8 @@ return { dependencies = "mfussenegger/nvim-dap", ft = "python", -- NOTE: ft: lazy-load on filetype config = function(_, opts) - local path - - local mason_registry_avail, mason_registry = pcall(require, "mason-registry") - if mason_registry_avail and mason_registry.is_installed "debugpy" then - local debugpy_path = vim.fn.expand "$MASON/packages/debugpy" - if vim.fn.has "win32" == 1 then - path = debugpy_path .. "/venv/Scripts/python" - else - path = debugpy_path .. "/venv/bin/python" - end - else - path = vim.fn.exepath "debugpy-adapter" - if path == "" then path = vim.fn.exepath "python" end - end + local path = vim.fn.exepath "debugpy-adapter" + if path == "" then path = vim.fn.exepath "python" end require("dap-python").setup(path, opts) end, },