diff options
Diffstat (limited to 'plugin/basename.lua')
-rw-r--r-- | plugin/basename.lua | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/plugin/basename.lua b/plugin/basename.lua index 8b875d1..84d2991 100644 --- a/plugin/basename.lua +++ b/plugin/basename.lua @@ -1,24 +1,26 @@ --- Implementation of the basename register. --- --- The basename register is like the filename register ("%), but instead of --- returning the whole filename, it will return just the basename with one --- extension removed. --- --- Useful for Java when needing to reference the class. --- --- This register is assigned to the character '$' +--- Basename Register: returns the current filename without path and extension. +--- +--- This is similar to the "%" register (full filename), but returns only +--- the basename with one extension removed. Useful, for example, when referencing +--- Java class names based on the file name. +--- +--- This register is read-only and assigned to the character '$'. -local userreg = require("vim.userreg") +local userregs = require("vim.userregs") local api = vim.api +---@type table<string, fun(regname: string): any> local handler = {} -function handler.do_yank(self, content) - return -1 -- Read-only register. -end - -function handler.do_put() +--- Return the current buffer's basename without extension. +--- Equivalent to `expand('%:t:r')` +function handler.put(regname) return vim.fn.expand('%:t:r') end -userreg.register_handler('$', handler) +-- Make this register read-only by omitting the yank handler. +handler.yank = nil + +-- Register this handler under the user register '$'. +userregs.register_handler('$', handler) + |