diff options
| author | Josh Rahm <rahm@josher.dev> | 2026-10-18 15:49:48 -0600 |
|---|---|---|
| committer | Josh Rahm <rahm@josher.dev> | 2026-10-18 15:49:48 -0600 |
| commit | 7b15a3a4b4fb4dc6be5d53a22c20d68f8181d68b (patch) | |
| tree | d3e08937bc78441a2f3d64ad6935337cf6d9b0be /lua/extregs/tmux.lua | |
| download | extregs.nvim-main.tar.gz extregs.nvim-main.tar.bz2 extregs.nvim-main.zip | |
added a bunch of useful extregs
Diffstat (limited to 'lua/extregs/tmux.lua')
| -rw-r--r-- | lua/extregs/tmux.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lua/extregs/tmux.lua b/lua/extregs/tmux.lua new file mode 100644 index 0000000..ea0299b --- /dev/null +++ b/lua/extregs/tmux.lua @@ -0,0 +1,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 |