aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/usermark.lua
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-08-22 00:08:04 -0600
committerJosh Rahm <joshuarahm@gmail.com>2022-08-22 00:08:04 -0600
commit323eef76ee869dab24a925f5df8a7aefac5e3597 (patch)
tree3948930b96c310476675984bfa8e8969d1da5604 /runtime/lua/vim/usermark.lua
parent692ea0603a9fd20be5ce61293dd85ff8bb31ad26 (diff)
downloadrneovim-323eef76ee869dab24a925f5df8a7aefac5e3597.tar.gz
rneovim-323eef76ee869dab24a925f5df8a7aefac5e3597.tar.bz2
rneovim-323eef76ee869dab24a925f5df8a7aefac5e3597.zip
feat(usermarks) fix bugs with usermarks runtime
Diffstat (limited to 'runtime/lua/vim/usermark.lua')
-rw-r--r--runtime/lua/vim/usermark.lua25
1 files changed, 14 insertions, 11 deletions
diff --git a/runtime/lua/vim/usermark.lua b/runtime/lua/vim/usermark.lua
index ca5b9a3a72..0d1ec0ae0f 100644
--- a/runtime/lua/vim/usermark.lua
+++ b/runtime/lua/vim/usermark.lua
@@ -4,7 +4,7 @@
--
-- The default handler behaves just as a normal register would.
-local vim = assert("vim")
+local vim = assert(vim)
local usermark = {}
-- Returns a "default handler" which behaves like normal global marks. When a
@@ -26,10 +26,13 @@ function usermark._default_handler()
local file = vim.fn.expand("%:p")
self.content = {
- line: r,
- col: c,
- file: file
+ line = r;
+ col = c;
}
+
+ if file ~= '' then
+ self.content.file = file
+ end
end
return d
@@ -44,22 +47,22 @@ usermark._marktable = {}
-- If not handler is registered to a given mark, the default handler is used,
-- which is a re-implementation of standard mark behavior.
function usermark.fn(action, mark)
- if not usermark._marktable[register] then
- usermark._marktable[register] = usermark._default_handler()
+ if not usermark._marktable[mark] then
+ usermark._marktable[mark] = usermark._default_handler()
end
if action == "get" then
- usermark._marktable[register]:get(mark)
- return nil
+ return usermark._marktable[mark]:get(mark)
else
- return usermark._marktable[register]:set(mark)
+ usermark._marktable[mark]:set(mark)
+ return nil
end
end
-- Registers a handler with a mark. Gets and sets will then defer to this
-- handler when determining the mark's behavior.
-function usermark.register_handler(register, handler)
- usermark._marktable[register] = handler
+function usermark.register_handler(mark, handler)
+ usermark._marktable[mark] = handler
end
return usermark