summaryrefslogtreecommitdiff
path: root/lua/vim/userregs/impl/basename.lua
blob: a46a3816690492eced0a635eaf7b37d8ad334e4b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
--- 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 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('%:t:r')
end

-- Make this register read-only by omitting the yank handler.
handler.yank = nil

-- Register this handler under the user register '$'.
userregs.register_handler('$', handler)


return {}