aboutsummaryrefslogtreecommitdiff
path: root/lua/extregs/tmux.lua
diff options
context:
space:
mode:
authorJosh Rahm <rahm@josher.dev>2026-10-18 15:49:48 -0600
committerJosh Rahm <rahm@josher.dev>2026-10-18 15:49:48 -0600
commit7b15a3a4b4fb4dc6be5d53a22c20d68f8181d68b (patch)
treed3e08937bc78441a2f3d64ad6935337cf6d9b0be /lua/extregs/tmux.lua
downloadextregs.nvim-main.tar.gz
extregs.nvim-main.tar.bz2
extregs.nvim-main.zip
[extregs] initial commit.HEADmain
added a bunch of useful extregs
Diffstat (limited to 'lua/extregs/tmux.lua')
-rw-r--r--lua/extregs/tmux.lua24
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