Merge remote-tracking branch 'origin/master' into 2826-multi-instance-view-amc
This commit is contained in:
@@ -134,12 +134,12 @@ end
|
||||
function Builder:format_line(indent_markers, arrows, icon, name, node)
|
||||
local added_len = 0
|
||||
local function add_to_end(t1, t2)
|
||||
if not t2 then
|
||||
if not t2 or vim.tbl_isempty(t2) then
|
||||
return
|
||||
end
|
||||
for _, v in ipairs(t2) do
|
||||
if added_len > 0 then
|
||||
table.insert(t1, { str = self.explorer.opts.renderer.icons.padding })
|
||||
table.insert(t1, { str = self.explorer.opts.renderer.icons.padding.icon })
|
||||
end
|
||||
table.insert(t1, v)
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
local M = {}
|
||||
|
||||
local utils = require("nvim-tree.utils")
|
||||
local view = require("nvim-tree.view")
|
||||
|
||||
local function hide(win)
|
||||
if win then
|
||||
@@ -32,7 +33,7 @@ local function effective_win_width()
|
||||
return win_width - win_info[1].textoff
|
||||
end
|
||||
|
||||
local function show()
|
||||
local function show(opts)
|
||||
local line_nr = vim.api.nvim_win_get_cursor(0)[1]
|
||||
if vim.wo.wrap then
|
||||
return
|
||||
@@ -52,6 +53,11 @@ local function show()
|
||||
local text_width = vim.fn.strdisplaywidth(vim.fn.substitute(line, "[^[:print:]]*$", "", "g"))
|
||||
local win_width = effective_win_width()
|
||||
|
||||
-- windows width reduced by right aligned icons
|
||||
local icon_ns_id = vim.api.nvim_get_namespaces()["NvimTreeExtmarks"]
|
||||
local icon_extmarks = vim.api.nvim_buf_get_extmarks(0, icon_ns_id, { line_nr - 1, 0 }, { line_nr - 1, -1 }, { details = true })
|
||||
win_width = win_width - utils.extmarks_length(icon_extmarks)
|
||||
|
||||
if text_width < win_width then
|
||||
return
|
||||
end
|
||||
@@ -66,6 +72,7 @@ local function show()
|
||||
style = "minimal",
|
||||
border = "none"
|
||||
})
|
||||
vim.wo[M.popup_win].winhl = view.View.winopts.winhl
|
||||
|
||||
local ns_id = vim.api.nvim_get_namespaces()["NvimTreeHighlights"]
|
||||
local extmarks = vim.api.nvim_buf_get_extmarks(0, ns_id, { line_nr - 1, 0 }, { line_nr - 1, -1 }, { details = true })
|
||||
@@ -88,7 +95,10 @@ local function show()
|
||||
end
|
||||
end
|
||||
end
|
||||
vim.cmd([[ setlocal nowrap cursorline noswapfile nobuflisted buftype=nofile bufhidden=wipe ]])
|
||||
vim.cmd([[ setlocal nowrap noswapfile nobuflisted buftype=nofile bufhidden=wipe ]])
|
||||
if opts.view.cursorline then
|
||||
vim.cmd([[ setlocal cursorline cursorlineopt=both ]])
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
@@ -114,7 +124,7 @@ M.setup = function(opts)
|
||||
pattern = { "NvimTree_*" },
|
||||
callback = function()
|
||||
if utils.is_nvim_tree_buf(0) then
|
||||
show()
|
||||
show(opts)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -95,15 +95,15 @@ function M.get_arrows(node)
|
||||
local dir = node:as(DirectoryNode)
|
||||
if dir then
|
||||
if dir.open then
|
||||
str = M.config.icons.glyphs.folder["arrow_open"] .. " "
|
||||
str = M.config.icons.glyphs.folder["arrow_open"] .. M.config.icons.padding.folder_arrow
|
||||
hl = "NvimTreeFolderArrowOpen"
|
||||
else
|
||||
str = M.config.icons.glyphs.folder["arrow_closed"] .. " "
|
||||
str = M.config.icons.glyphs.folder["arrow_closed"] .. M.config.icons.padding.folder_arrow
|
||||
end
|
||||
elseif M.config.indent_markers.enable then
|
||||
str = ""
|
||||
else
|
||||
str = " "
|
||||
str = " " .. string.rep(" ", #M.config.icons.padding.folder_arrow)
|
||||
end
|
||||
|
||||
return { str = str, hl = { hl } }
|
||||
|
||||
@@ -112,9 +112,8 @@ function Decorator:define_sign(icon)
|
||||
vim.fn.sign_undefine(name)
|
||||
end
|
||||
|
||||
-- don't use sign if not defined
|
||||
-- don't render sign if empty
|
||||
if #icon.str < 1 then
|
||||
self.icon_placement = "none"
|
||||
return
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user