fix nvim: menu for gitsigns失效
This commit is contained in:
parent
52960297c1
commit
e533009bea
@ -20,43 +20,45 @@ return {
|
|||||||
|
|
||||||
vim.cmd.exec '"normal! \\<RightMouse>"'
|
vim.cmd.exec '"normal! \\<RightMouse>"'
|
||||||
|
|
||||||
-- clicked buf
|
vim.defer_fn(function()
|
||||||
local mouse = vim.fn.getmousepos()
|
-- clicked buf
|
||||||
local buf = vim.api.nvim_win_get_buf(mouse.winid)
|
local mouse = vim.fn.getmousepos()
|
||||||
local name = vim.api.nvim_buf_get_name(buf)
|
local buf = vim.api.nvim_win_get_buf(mouse.winid)
|
||||||
local ft = vim.bo[buf].ft
|
local name = vim.api.nvim_buf_get_name(buf)
|
||||||
local gitsigns = require("gitsigns")
|
local ft = vim.bo[buf].ft
|
||||||
local hunks = gitsigns.get_hunks and gitsigns.get_hunks(buf)
|
local gitsigns = require("gitsigns")
|
||||||
local lsp = vim.lsp.get_clients({ bufnr = buf })
|
local hunks = gitsigns.get_hunks and gitsigns.get_hunks(buf)
|
||||||
|
local lsp = vim.lsp.get_clients({ bufnr = buf })
|
||||||
|
|
||||||
local in_signcolumn = mouse.wincol <= vim.fn.getwininfo(mouse.winid)[1].textoff
|
local in_signcolumn = mouse.wincol <= vim.fn.getwininfo(mouse.winid)[1].textoff
|
||||||
local is_git_buf = vim.b[buf].gitsigns_head ~= nil
|
local is_git_buf = vim.b[buf].gitsigns_head ~= nil
|
||||||
local has_hunks = hunks and #hunks > 0
|
local has_hunks = hunks and #hunks > 0
|
||||||
|
|
||||||
local options
|
local options
|
||||||
if ft == "neo-tree" then
|
if ft == "neo-tree" then
|
||||||
options = "neo-tree"
|
options = "neo-tree"
|
||||||
elseif in_signcolumn and is_git_buf and has_hunks then
|
elseif in_signcolumn and is_git_buf and has_hunks then
|
||||||
options = "gitsigns"
|
options = "gitsigns"
|
||||||
else
|
else
|
||||||
options = "default"
|
options = "default"
|
||||||
end
|
end
|
||||||
|
|
||||||
-- -- Debug用途
|
-- -- Debug用途
|
||||||
-- local name = vim.api.nvim_buf_get_name(buf)
|
-- local name = vim.api.nvim_buf_get_name(buf)
|
||||||
-- local lsp = vim.lsp.get_clients({ bufnr = buf })
|
-- local lsp = vim.lsp.get_clients({ bufnr = buf })
|
||||||
-- vim.notify("👉 Buffer: " .. buf ..
|
-- vim.notify("👉 Buffer: " .. buf ..
|
||||||
-- "\nFile: " .. name ..
|
-- "\nFile: " .. name ..
|
||||||
-- "\nFiletype: " .. ft ..
|
-- "\nFiletype: " .. ft ..
|
||||||
-- "\nGitsigns Head: " .. vim.inspect(vim.b[buf].gitsigns_head) ..
|
-- "\nGitsigns Head: " .. vim.inspect(vim.b[buf].gitsigns_head) ..
|
||||||
-- "\nHas Hunks: " .. tostring(has_hunks) ..
|
-- "\nHas Hunks: " .. tostring(has_hunks) ..
|
||||||
-- "\nMouse Col: " .. mouse.wincol ..
|
-- "\nMouse Col: " .. mouse.wincol ..
|
||||||
-- "\nText Offset: " .. vim.fn.getwininfo(mouse.winid)[1].textoff ..
|
-- "\nText Offset: " .. vim.fn.getwininfo(mouse.winid)[1].textoff ..
|
||||||
-- "\nIn SignColumn: " .. tostring(in_signcolumn) ..
|
-- "\nIn SignColumn: " .. tostring(in_signcolumn) ..
|
||||||
-- "\nLSP: " .. tostring(#lsp > 0) ..
|
-- "\nLSP: " .. tostring(#lsp > 0) ..
|
||||||
-- "\n🧭 Menu: " .. options, vim.log.levels.INFO
|
-- "\n🧭 Menu: " .. options, vim.log.levels.INFO
|
||||||
-- )
|
-- )
|
||||||
require("menu").open(options, { mouse = true })
|
require("menu").open(options, { mouse = true })
|
||||||
|
end, 10)
|
||||||
end, {})
|
end, {})
|
||||||
|
|
||||||
end,
|
end,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user