From c015ae5b5e4c7e396b931499b8619d951556199b Mon Sep 17 00:00:00 2001 From: Jesse Leite Date: Wed, 24 Mar 2021 01:44:18 -0400 Subject: [PATCH] Add ability to customize menu window. --- lua/harpoon/init.lua | 4 ++++ lua/harpoon/ui.lua | 34 +++++++++++++++++++++++----------- plugin/harpoon.vim | 3 +++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/lua/harpoon/init.lua b/lua/harpoon/init.lua index 0eb676c..aeee287 100644 --- a/lua/harpoon/init.lua +++ b/lua/harpoon/init.lua @@ -139,6 +139,10 @@ M.get_mark_config = function() return HarpoonConfig.projects[cwd].mark end +M.get_menu_config = function() + return HarpoonConfig.menu or {} +end + -- should only be called for debug purposes M.print_config = function() print(vim.inspect(HarpoonConfig)) diff --git a/lua/harpoon/ui.lua b/lua/harpoon/ui.lua index 40aa4af..1e0cfbb 100644 --- a/lua/harpoon/ui.lua +++ b/lua/harpoon/ui.lua @@ -1,23 +1,35 @@ -local float = require('plenary.window.float') +local harpoon = require('harpoon') +local popup = require('popup') local Marked = require('harpoon.mark') -local factorw = 0.42069 -local factorh = 0.69420 - local M = {} win_id = nil bufh = nil function create_window() - local win_info = float.percentage_range_window( - factorw, - factorh, - { - winblend = 0 - }) + local config = harpoon.get_menu_config() + local width = config.width or 60 + local height = config.height or 10 + local borderchars = config.borderchars or { '─', '│', '─', '│', '╭', '╮', '╯', '╰' } + local bufnr = vim.api.nvim_create_buf(false, false) - return win_info + local win_id, win = popup.create(bufnr, { + title = 'Harpoon', + highlight = 'HarpoonWindow', + line = math.floor(((vim.o.lines - height) / 2) - 1), + col = math.floor((vim.o.columns - width) / 2), + minwidth = width, + minheight = height, + borderchars = borderchars, + }) + + vim.api.nvim_win_set_option(win.border.win_id, 'winhl', 'Normal:HarpoonBorder') + + return { + bufnr = bufnr, + win_id = win_id, + } end function get_menu_items() diff --git a/plugin/harpoon.vim b/plugin/harpoon.vim index 094f482..1763ec2 100644 --- a/plugin/harpoon.vim +++ b/plugin/harpoon.vim @@ -68,3 +68,6 @@ fun! Harpoon_SendTerminalCommand(ctrlId, command) call term_sendkeys(l:bufh, a:command) endif endfun + +highlight default HarpoonWindow ctermbg=none +highlight default HarpoonBorder ctermbg=none ctermfg=white