diff --git a/.github/generate.py b/.github/generate.py index 19f8a3b..87881c5 100755 --- a/.github/generate.py +++ b/.github/generate.py @@ -119,6 +119,7 @@ COL_DEFS = [ + [ LuaParam("default_file", "string", "Fallback icon for files when nvim-web-devicons returns nil"), LuaParam("directory", "string", "Icon for directories"), + LuaParam("add_padding", "boolean", "Set to false to remove the extra whitespace after the icon"), ], ), ColumnDef("size", "files, ssh", False, "The size of the file", HL + []), diff --git a/doc/oil.txt b/doc/oil.txt index 5a5ec12..bdca4d9 100644 --- a/doc/oil.txt +++ b/doc/oil.txt @@ -260,6 +260,8 @@ icon *column-ico {default_file} `string` Fallback icon for files when nvim-web-devicons returns nil {directory} `string` Icon for directories + {add_padding} `boolean` Set to false to remove the extra whitespace after + the icon size *column-size* Adapters: files, ssh @@ -383,6 +385,9 @@ HIGHLIGHTS *oil-highlight OilDir *hl-OilDir* Directories in an oil buffer +OilDirIcon *hl-OilDirIcon* + Icon for directories + OilSocket *hl-OilSocket* Socket files in an oil buffer diff --git a/lua/oil/columns.lua b/lua/oil/columns.lua index fef42d8..43a4d14 100644 --- a/lua/oil/columns.lua +++ b/lua/oil/columns.lua @@ -208,16 +208,18 @@ if has_devicons then type = meta.link_stat.type end end + local icon, hl if type == "directory" then - local icon = conf and conf.directory or " " - return { icon, "OilDir" } + icon = conf and conf.directory or "" + hl = "OilDirIcon" else - local icon - local hl icon, hl = devicons.get_icon(name) icon = icon or (conf and conf.default_file or "") - return { icon .. " ", hl } end + if not conf or conf.add_padding ~= false then + icon = icon .. " " + end + return { icon, hl } end, parse = function(line, conf) diff --git a/lua/oil/init.lua b/lua/oil/init.lua index e06937d..bac18a3 100644 --- a/lua/oil/init.lua +++ b/lua/oil/init.lua @@ -625,6 +625,11 @@ M._get_highlights = function() link = "Directory", desc = "Directories in an oil buffer", }, + { + name = "OilDirIcon", + link = "OilDir", + desc = "Icon for directories", + }, { name = "OilSocket", link = "Keyword",