diff options
Diffstat (limited to 'runtime/lua/vim/userreg.lua')
-rw-r--r-- | runtime/lua/vim/userreg.lua | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/runtime/lua/vim/userreg.lua b/runtime/lua/vim/userreg.lua new file mode 100644 index 0000000000..d1062dea73 --- /dev/null +++ b/runtime/lua/vim/userreg.lua @@ -0,0 +1,27 @@ +local userreg = {} + +userreg.store = {} +userreg.regtable = {} + +function userreg.fn(action, register, content) + if action == "yank" then + if userreg.regtable[register] then + userreg.regtable[register]:do_yank(content) + else + userreg.store[register] = content + end + return nil + else + if userreg.regtable[register] then + return userreg.regtable[register]:do_put() + else + return userreg.store[register] or {} + end + end +end + +function userreg.register_handler(register, handler) + userreg.regtable[register] = handler +end + +return userreg |