dots/configs/nvim/lua/aleidk/plugins/remote-dev.lua
2025-09-01 12:17:39 -04:00

46 lines
2 KiB
Lua

return {
{
"coffebar/transfer.nvim",
cmd = { "TransferInit", "DiffRemote", "TransferUpload", "TransferDownload", "TransferDirDiff", "TransferRepeat" },
opts = {},
keys = {
{ "<leader>xx", function() vim.cmd("TransferRepeat") end, desc = "Repeat last transfer" },
{ "<leader>xc", function() vim.cmd("TransferInit") end, desc = "Config transfer.nvim" },
{ "<leader>xj", function() vim.cmd("TransferDownload") end, desc = "Download current file with transfer.nvim" },
{ "<leader>xJ", function() vim.cmd("TransferDownload " .. vim.uv.cwd()) end, desc = "Download root dir with transfer.nvim" },
{ "<leader>xk", function() vim.cmd("TransferUpload") end, desc = "Upload current file with transfer.nvim" },
{ "<leader>xK", function() vim.cmd("TransferUpload " .. vim.uv.cwd()) end, desc = "Upload root dir with transfer.nvim" },
{ "<leader>xd", function() vim.cmd("DiffRemote") end, desc = "Diff current file with transfer.nvim" },
{ "<leader>xD", function() vim.cmd("TransferDirDiff " .. vim.uv.cwd()) end, desc = "Diff root dir with transfer.nvim" },
},
config = function(_, opts)
require("transfer").setup(opts)
require("yazi").config.forwarded_dds_events = {
"TransferUpload",
"TransferDownload",
"DiffRemote",
"TransferDirDiff",
}
vim.api.nvim_create_autocmd("User", {
pattern = "YaziDDSCustom",
callback = function(event)
-- vim.print(event.data);
local data = vim.json.decode(event.data.raw_data)
if event.data.type == "DiffRemote" or event.data.type == "TransferDirDiff" then
local response = vim.system({ "ya", "emit-to", "0", "close" }, { timeout = 1000 }):wait()
if response.stderr ~= "" then
vim.notify(response.stderr, vim.log.levels.ERROR)
return
end
end
vim.iter(data):each(function(path) vim.cmd(string.format("%s %s", event.data.type, path)) end)
end,
})
end
},
}