* feat(#2415): granular highlight_diagnostics, normalise groups (#2454) * chore: normalise colours and enable cterm (#2471) * feat(#2415): granular highlight_git, normalise git groups (#2487) * docs: update CONTRIBUTING.md (#2485) * feat(#2415): granular highlight_git, normalise git groups * feat(#2415): normalise and add modified groups * feat(#2415): create Decorator class for modified and bookmarks * feat(#2415): create DecoratorDiagnostics * feat(#2415): create DecoratorGit * feat(#2415): create DecoratorGit * add DecoratorCopied DecoratorCut * add DecoratorOpened * remove unloaded_bufnr checks as the view debouncer takes care of it * Add `renderer.highlight_git` to accepted strings * fix(#2415): builder refactor (#2538) * simplify builder signs * decorators take care of themselves and are priority ordered * simplify builder hl groups * refactor builder for icon arrays * builder use decorators generically * fix(#2415): harden sign creation (#2539) * fix(#2415): harden unicode signs * Decorator tidy * normalise git sign creation and tidy * tidy builder * NvimTreeBookmarkIcon * tidy HL doc * tidy HL doc * tidy HL doc * tidy builder doc * standardise on '---@param' * DiagnosticWarning -> DiagnosticWarn * annotate decorators * limit to two highlight groups for line rendering * style * apply #2519 * feat(#2415): combined hl groups (#2601) * feat(#2415): create combined highlight groups * feat(#2415): create combined highlight groups * feat(#2415): create combined highlight groups * ci: allow workflow_dispatch (#2620) * one and only one hl namespace, required winhl removal * small tidies * colors.lua -> appearance.lua * full-name uses one and only namespace * don't highlight fast, just apply to namespace, safer win_set_hl * gut builder (#2622) collapse Builder * fix group_empty function check * feat(#2415): highlight-overhaul release date --------- Co-authored-by: Akmadan23 <azadahmadi@mailo.com>
This commit is contained in:
committed by
GitHub
parent
f24afa2cef
commit
e9c5abe073
@@ -47,16 +47,15 @@ end
|
||||
---Check if the given path has no listed buffer
|
||||
---@param path string Absolute path
|
||||
---@param bufinfo table vim.fn.getbufinfo { buflisted = 1 }
|
||||
---@param unloaded_bufnr number optional bufnr recently unloaded via BufUnload event
|
||||
---@return boolean
|
||||
local function buf(path, bufinfo, unloaded_bufnr)
|
||||
local function buf(path, bufinfo)
|
||||
if not M.config.filter_no_buffer or type(bufinfo) ~= "table" then
|
||||
return false
|
||||
end
|
||||
|
||||
-- filter files with no open buffer and directories containing no open buffers
|
||||
for _, b in ipairs(bufinfo) do
|
||||
if b.name == path or b.name:find(path .. "/", 1, true) and b.bufnr ~= unloaded_bufnr then
|
||||
if b.name == path or b.name:find(path .. "/", 1, true) then
|
||||
return false
|
||||
end
|
||||
end
|
||||
@@ -105,16 +104,13 @@ end
|
||||
|
||||
---Prepare arguments for should_filter. This is done prior to should_filter for efficiency reasons.
|
||||
---@param git_status table|nil optional results of git.load_project_status(...)
|
||||
---@param unloaded_bufnr number|nil optional bufnr recently unloaded via BufUnload event
|
||||
---@return table
|
||||
--- git_status: reference
|
||||
--- unloaded_bufnr: copy
|
||||
--- bufinfo: empty unless no_buffer set: vim.fn.getbufinfo { buflisted = 1 }
|
||||
--- bookmarks: absolute paths to boolean
|
||||
function M.prepare(git_status, unloaded_bufnr)
|
||||
function M.prepare(git_status)
|
||||
local status = {
|
||||
git_status = git_status or {},
|
||||
unloaded_bufnr = unloaded_bufnr,
|
||||
bufinfo = {},
|
||||
bookmarks = {},
|
||||
}
|
||||
@@ -140,11 +136,7 @@ function M.should_filter(path, status)
|
||||
return false
|
||||
end
|
||||
|
||||
return git(path, status.git_status)
|
||||
or buf(path, status.bufinfo, status.unloaded_bufnr)
|
||||
or dotfile(path)
|
||||
or custom(path)
|
||||
or bookmark(path, status.bookmarks)
|
||||
return git(path, status.git_status) or buf(path, status.bufinfo) or dotfile(path) or custom(path) or bookmark(path, status.bookmarks)
|
||||
end
|
||||
|
||||
function M.setup(opts)
|
||||
|
||||
@@ -69,8 +69,7 @@ end
|
||||
|
||||
---@param node Node
|
||||
---@param git_status table
|
||||
---@param unloaded_bufnr number|nil
|
||||
function M.reload(node, git_status, unloaded_bufnr)
|
||||
function M.reload(node, git_status)
|
||||
local cwd = node.link_to or node.absolute_path
|
||||
local handle = vim.loop.fs_scandir(cwd)
|
||||
if not handle then
|
||||
@@ -79,7 +78,7 @@ function M.reload(node, git_status, unloaded_bufnr)
|
||||
|
||||
local profile = log.profile_start("reload %s", node.absolute_path)
|
||||
|
||||
local filter_status = filters.prepare(git_status, unloaded_bufnr)
|
||||
local filter_status = filters.prepare(git_status)
|
||||
|
||||
if node.group_next then
|
||||
node.nodes = { node.group_next }
|
||||
|
||||
Reference in New Issue
Block a user