nvim + pi / bi-directional communication
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546--- Handle file reload requests from Pilocal M = {}
---@class pi.ReloadParams---@field type "reload"---@field files string[]
---@class pi.ReloadResult---@field reloaded string[]---@field skipped string[]
--- Reload files that have open buffers (if not modified)---@param params pi.ReloadParams---@return pi.ReloadResultfunction M.execute(params) local reloaded = {} local skipped = {}
for _, file in ipairs(params.files or {}) do local bufnr = vim.fn.bufnr(file)
-- Skip if no buffer exists for this file if bufnr == -1 then goto continue end
-- Skip modified buffers if vim.bo[bufnr].modified then table.insert(skipped, file) goto continue end
-- Reload the buffer vim.api.nvim_buf_call(bufnr, function() vim.cmd('e') end) table.insert(reloaded, file)
::continue:: end
return { reloaded = reloaded, skipped = skipped }end
return M