summaryrefslogtreecommitdiff
path: root/lua/vim/userregs/impl/uuid_register.lua
blob: de45de186076d557611a41a243fa014a77394671 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
})