summaryrefslogtreecommitdiff
path: root/lua/vim/userregs/impl/uuid_register.lua
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2025-04-10 00:20:28 -0600
committerJosh Rahm <joshuarahm@gmail.com>2025-04-10 00:20:28 -0600
commitd2325e040e2a4c2ea9d0d8c57af57bc13f7aeae7 (patch)
tree42cdc551faf3b3abbeb998166f00f937747fa6b1 /lua/vim/userregs/impl/uuid_register.lua
parentb3b09ff479510abc51ffb88743bb353bcc15e165 (diff)
downloadrneovim-userregs-main.tar.gz
rneovim-userregs-main.tar.bz2
rneovim-userregs-main.zip
Add some more user-defined registers:HEADmain
"| - file contents register " - visual selection register " - timestamp register " - uuid register " - dirname register
Diffstat (limited to 'lua/vim/userregs/impl/uuid_register.lua')
-rw-r--r--lua/vim/userregs/impl/uuid_register.lua18
1 files changed, 18 insertions, 0 deletions
diff --git a/lua/vim/userregs/impl/uuid_register.lua b/lua/vim/userregs/impl/uuid_register.lua
new file mode 100644
index 0000000..de45de1
--- /dev/null
+++ b/lua/vim/userregs/impl/uuid_register.lua
@@ -0,0 +1,18 @@
+local userregs = require("vim.userregs")
+
+local function generate_uuid()
+ local random = math.random
+ local template = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"
+ return string.gsub(template, "[xy]", function(c)
+ local v = (c == "x") and random(0, 0xf) or random(8, 0xb)
+ return string.format("%x", v)
+ end)
+end
+
+userregs.register_handler("\21", { -- Ctrl+U
+ put = function()
+ return generate_uuid()
+ end,
+ yank = nil, -- read-only
+})
+