From 740b8fd425a2b77f7f40eb5ac155ebe66ff9515c Mon Sep 17 00:00:00 2001 From: Foo-x Date: Sat, 23 Nov 2024 01:17:50 +0900 Subject: [PATCH] feat: add highlight group for orphaned links (#502) * feat: add highlight for orphan links Closes #501 * feat: add OilOrphanLinkTarget highlight group --------- Co-authored-by: Steven Arcangeli --- doc/oil.txt | 6 ++++++ lua/oil/init.lua | 10 ++++++++++ lua/oil/view.lua | 5 +++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/doc/oil.txt b/doc/oil.txt index 0cfb872..62e547e 100644 --- a/doc/oil.txt +++ b/doc/oil.txt @@ -619,9 +619,15 @@ OilSocket *hl-OilSocke OilLink *hl-OilLink* Soft links in an oil buffer +OilOrphanLink *hl-OilOrphanLink* + Orphaned soft links in an oil buffer + OilLinkTarget *hl-OilLinkTarget* The target of a soft link +OilOrphanLinkTarget *hl-OilOrphanLinkTarget* + The target of an orphaned soft link + OilFile *hl-OilFile* Normal files in an oil buffer diff --git a/lua/oil/init.lua b/lua/oil/init.lua index 1450646..e8b8275 100644 --- a/lua/oil/init.lua +++ b/lua/oil/init.lua @@ -816,11 +816,21 @@ M._get_highlights = function() link = nil, desc = "Soft links in an oil buffer", }, + { + name = "OilOrphanLink", + link = nil, + desc = "Orphaned soft links in an oil buffer", + }, { name = "OilLinkTarget", link = "Comment", desc = "The target of a soft link", }, + { + name = "OilOrphanLinkTarget", + link = "DiagnosticError", + desc = "The target of an orphaned soft link", + }, { name = "OilFile", link = nil, diff --git a/lua/oil/view.lua b/lua/oil/view.lua index b36140b..6a5939d 100644 --- a/lua/oil/view.lua +++ b/lua/oil/view.lua @@ -728,10 +728,11 @@ M.format_entry_cols = function(entry, column_defs, col_width, adapter) end end end + local is_orphan = not (meta and meta.link_stat) - table.insert(cols, { name, "OilLink" }) + table.insert(cols, { name, is_orphan and "OilOrphanLink" or "OilLink" }) if link_text then - table.insert(cols, { link_text, "OilLinkTarget" }) + table.insert(cols, { link_text, is_orphan and "OilOrphanLinkTarget" or "OilLinkTarget" }) end else table.insert(cols, { name, "OilFile" })