summaryrefslogtreecommitdiff
path: root/lua/vim/userregs/impl/dirname.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/dirname.lua
parentb3b09ff479510abc51ffb88743bb353bcc15e165 (diff)
downloadrneovim-userregs-d2325e040e2a4c2ea9d0d8c57af57bc13f7aeae7.tar.gz
rneovim-userregs-d2325e040e2a4c2ea9d0d8c57af57bc13f7aeae7.tar.bz2
rneovim-userregs-d2325e040e2a4c2ea9d0d8c57af57bc13f7aeae7.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/dirname.lua')
-rw-r--r--lua/vim/userregs/impl/dirname.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/lua/vim/userregs/impl/dirname.lua b/lua/vim/userregs/impl/dirname.lua
new file mode 100644
index 0000000..503601d
--- /dev/null
+++ b/lua/vim/userregs/impl/dirname.lua
@@ -0,0 +1,27 @@
+--- Dirname Register: returns the direction for the filename.
+---
+--- This is similar to the "%" register (full filename), but returns only
+--- the the directory.
+---
+--- This register is read-only and assigned to the character '<C-d>'.
+
+local userregs = require("vim.userregs")
+local api = vim.api
+
+---@type table<string, fun(regname: string): any>
+local handler = {}
+
+--- Return the current buffer's basename without extension.
+--- Equivalent to `expand('%:t:r')`
+function handler.put(regname)
+ return vim.fn.expand('%:p:h') .. '/'
+end
+
+-- Make this register read-only by omitting the yank handler.
+handler.yank = nil
+
+-- Register this handler under the user register '<C-d>'.
+userregs.register_handler('\4', handler)
+
+
+return {}