From 3118f9d40f970958280ba080c91642284b6f5611 Mon Sep 17 00:00:00 2001 From: tiyn Date: Fri, 8 May 2026 02:57:54 +0200 Subject: [PATCH] Nvim: Made Molten more robust --- .config/nvim/lua/plugins/molten.lua | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/.config/nvim/lua/plugins/molten.lua b/.config/nvim/lua/plugins/molten.lua index c69ada9..a6b6b0f 100644 --- a/.config/nvim/lua/plugins/molten.lua +++ b/.config/nvim/lua/plugins/molten.lua @@ -22,13 +22,24 @@ return { vim.schedule(function() local kernels = vim.fn.MoltenAvailableKernels() local try_kernel_name = function() - local metadata = vim.json.decode(io.open(e.file, "r"):read("a"))["metadata"] - return metadata.kernelspec.name + local f = io.open(e.file, "r") + if not f then + return nil + end + local content = f:read("*a") + f:close() + local ok, decoded = pcall(vim.json.decode, content) + if not ok then + return nil + end + return decoded.metadata + and decoded.metadata.kernelspec + and decoded.metadata.kernelspec.name end local ok, kernel_name = pcall(try_kernel_name) if not ok or not vim.tbl_contains(kernels, kernel_name) then kernel_name = nil - local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") + local venv = os.getenv("VIRTUAL_ENV") or os.getenv("CONDA_PREFIX") or ".venv" if venv ~= nil then kernel_name = string.match(venv, "/.+/(.+)") end