From 843d97f71f2f9acb1d28f10cd800eb24f9e5936d Mon Sep 17 00:00:00 2001 From: Raigo Jerva Date: Mon, 24 May 2021 17:06:39 +0300 Subject: [PATCH] Allow statusline marks to differ between buffers - vim.fn.bufname() is identical to vim.fn.bufname(vim.fn.bufnr()) --- lua/harpoon/mark.lua | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lua/harpoon/mark.lua b/lua/harpoon/mark.lua index de706f7..f590992 100644 --- a/lua/harpoon/mark.lua +++ b/lua/harpoon/mark.lua @@ -56,7 +56,7 @@ end local function get_buf_name(id) log.trace("_get_buf_name():", id) if id == nil then - return utils.normalize_path(vim.fn.bufname(vim.fn.bufnr())) + return utils.normalize_path(vim.fn.bufname()) elseif type(id) == "string" then return utils.normalize_path(id) end @@ -140,9 +140,17 @@ M.get_index_of = function(item) return nil end -M.status = function() +M.status = function(bufnr) log.trace("status()") - local idx = M.get_index_of(get_buf_name()) + local buf_name + if bufnr then + buf_name = vim.fn.bufname(bufnr) + else + buf_name = vim.fn.bufname() + end + + local norm_name = utils.normalize_path(buf_name) + local idx = M.get_index_of(norm_name) if M.valid_index(idx) then return "M" .. idx @@ -347,7 +355,7 @@ end M.get_current_index = function() log.trace("get_current_index()") - return M.get_index_of(vim.fn.bufname(vim.fn.bufnr())) + return M.get_index_of(vim.fn.bufname()) end M.on = function(event, cb)