diff --git a/doc/upstream.md b/doc/upstream.md index 81c4311..a485041 100644 --- a/doc/upstream.md +++ b/doc/upstream.md @@ -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 | diff --git a/lua/canola/adapters/files.lua b/lua/canola/adapters/files.lua index dff8e1a..f828b37 100644 --- a/lua/canola/adapters/files.lua +++ b/lua/canola/adapters/files.lua @@ -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 diff --git a/lua/canola/adapters/s3.lua b/lua/canola/adapters/s3.lua index bc3e614..d1d82f1 100644 --- a/lua/canola/adapters/s3.lua +++ b/lua/canola/adapters/s3.lua @@ -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) diff --git a/lua/canola/adapters/ssh.lua b/lua/canola/adapters/ssh.lua index 4654b32..a0750e9 100644 --- a/lua/canola/adapters/ssh.lua +++ b/lua/canola/adapters/ssh.lua @@ -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)