fix(columns): hide misleading directory sizes (#87)
* fix(columns): hide misleading directory sizes in size column Problem: the size column shows the filesystem inode size (typically 4096 = 4.1k) for directories, which is misleading — users expect no size for directories. Solution: add an early return for directory entries in the size render function of the files, SSH, and S3 adapters. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(upstream): mark #486 fixed --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
abc4879688
commit
fc43684bbd
4 changed files with 17 additions and 3 deletions
|
|
@ -37,6 +37,7 @@ Bugs fixed in this fork that remain open upstream.
|
|||
| [#710](https://github.com/stevearc/oil.nvim/issues/710) | buftype empty on BufEnter | [#10](https://github.com/barrettruth/canola.nvim/pull/10) ([`01b860e`](https://github.com/barrettruth/canola.nvim/commit/01b860e)) |
|
||||
| [#213](https://github.com/stevearc/oil.nvim/issues/213) | Max file size for preview | [#85](https://github.com/barrettruth/canola.nvim/pull/85) ([`4b32ada`](https://github.com/barrettruth/canola.nvim/commit/4b32ada)) |
|
||||
| [#473](https://github.com/stevearc/oil.nvim/issues/473) | Show hidden when dir is all-hidden | [#85](https://github.com/barrettruth/canola.nvim/pull/85) ([`2fe4e78`](https://github.com/barrettruth/canola.nvim/commit/2fe4e78)) |
|
||||
| [#486](https://github.com/stevearc/oil.nvim/issues/486) | Directory sizes show misleading 4.1k | [#87](https://github.com/barrettruth/canola.nvim/pull/87) ([`2aff22a`](https://github.com/barrettruth/canola.nvim/commit/2aff22a)) |
|
||||
|
||||
## Open upstream PRs
|
||||
|
||||
|
|
@ -109,7 +110,7 @@ Bugs fixed in this fork that remain open upstream.
|
|||
| [#473](https://github.com/stevearc/oil.nvim/issues/473) | fixed | Show all hidden files if dir only has hidden — `view_options.show_hidden_when_empty` |
|
||||
| [#479](https://github.com/stevearc/oil.nvim/issues/479) | open | Harpoon integration recipe |
|
||||
| [#483](https://github.com/stevearc/oil.nvim/issues/483) | not actionable | Spell downloads depend on netrw — fixed in [neovim#34940](https://github.com/neovim/neovim/pull/34940) |
|
||||
| [#486](https://github.com/stevearc/oil.nvim/issues/486) | open | All directory sizes show 4.1k |
|
||||
| [#486](https://github.com/stevearc/oil.nvim/issues/486) | fixed | Directory sizes show 4.1k — [#87](https://github.com/barrettruth/canola.nvim/pull/87) ([`2aff22a`](https://github.com/barrettruth/canola.nvim/commit/2aff22a)) |
|
||||
| [#492](https://github.com/stevearc/oil.nvim/issues/492) | not actionable | j/k remapping question — answered in comments |
|
||||
| [#507](https://github.com/stevearc/oil.nvim/issues/507) | not actionable | lacasitos.nvim conflict on Windows — cross-plugin + Windows-only, no actionable fix |
|
||||
| [#521](https://github.com/stevearc/oil.nvim/issues/521) | open | oil-ssh connection issues |
|
||||
|
|
|
|||
|
|
@ -60,6 +60,9 @@ file_columns.size = {
|
|||
if not stat then
|
||||
return columns.EMPTY
|
||||
end
|
||||
if entry[FIELD_TYPE] == 'directory' then
|
||||
return columns.EMPTY
|
||||
end
|
||||
if stat.size >= 1e9 then
|
||||
return string.format('%.1fG', stat.size / 1e9)
|
||||
elseif stat.size >= 1e6 then
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ local s3fs = require('canola.adapters.s3.s3fs')
|
|||
local util = require('canola.util')
|
||||
local M = {}
|
||||
|
||||
local FIELD_TYPE = constants.FIELD_TYPE
|
||||
local FIELD_META = constants.FIELD_META
|
||||
|
||||
---@class (exact) canola.s3Url
|
||||
|
|
@ -84,7 +85,11 @@ s3_columns.size = {
|
|||
local meta = entry[FIELD_META]
|
||||
if not meta or not meta.size then
|
||||
return ''
|
||||
elseif meta.size >= 1e9 then
|
||||
end
|
||||
if entry[FIELD_TYPE] == 'directory' then
|
||||
return ''
|
||||
end
|
||||
if meta.size >= 1e9 then
|
||||
return string.format('%.1fG', meta.size / 1e9)
|
||||
elseif meta.size >= 1e6 then
|
||||
return string.format('%.1fM', meta.size / 1e6)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ local util = require('canola.util')
|
|||
local M = {}
|
||||
|
||||
local FIELD_NAME = constants.FIELD_NAME
|
||||
local FIELD_TYPE = constants.FIELD_TYPE
|
||||
local FIELD_META = constants.FIELD_META
|
||||
|
||||
---@class (exact) canola.sshUrl
|
||||
|
|
@ -152,7 +153,11 @@ ssh_columns.size = {
|
|||
local meta = entry[FIELD_META]
|
||||
if not meta or not meta.size then
|
||||
return ''
|
||||
elseif meta.size >= 1e9 then
|
||||
end
|
||||
if entry[FIELD_TYPE] == 'directory' then
|
||||
return ''
|
||||
end
|
||||
if meta.size >= 1e9 then
|
||||
return string.format('%.1fG', meta.size / 1e9)
|
||||
elseif meta.size >= 1e6 then
|
||||
return string.format('%.1fM', meta.size / 1e6)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue