init.lua/lua/scratch/harpoon_status.lua(view raw)
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 29 30 31 32 33 34 35 36 37 38 39 40 41 |
local M = {}
---@param v number
---@return string
local function get_active_indicator(v)
return string.format("|%d|", v)
end
---@return string
function M.status()
local list = require("harpoon"):list()
local rdir = list.config:get_root_dir()
local cfpath = vim.api.nvim_buf_get_name(0)
local len = list:length()
local status = {}
for i = 1, len do
local value = list:get(i).value
value = value:gsub("^%./", "")
if cfpath == rdir .. "/" .. value then
table.insert(status, get_active_indicator(i))
else
table.insert(status, i)
end
end
return table.concat(status, " ")
end
---@return boolean
function M.exists()
return package.loaded["harpoon"] ~= nil
end
function M.debug()
package.loaded["scratch.harpoon_status"] = nil
require "scratch.harpoon_status"
end
return M
|