blob: ea0299bdf7b898531880a0bfd187d1b1e5ea7044 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
local util = require('extregs.util')
local storage = require('extregs.storage')
local M = {}
function M.get_provider(cfg)
local function run(cmd, input)
local argv = { 'tmux', cmd }
if cfg.buffer ~= nil then
assert(type(cfg.buffer) == 'string' and cfg.buffer ~= '', 'tmux.buffer must be a nonempty string')
vim.list_extend(argv, { '-b', cfg.buffer })
end
if cmd == 'load-buffer' then argv[#argv + 1] = '-' end
return util.system(argv, input, 'tmux')
end
return {
read = function() return storage.decode(run('show-buffer')) end,
write = function(_, reg)
local data = table.concat(reg.lines, '\n')
if reg.type == 'V' then data = data .. '\n' end
run('load-buffer', data)
return true
end,
}
end
return M
|