summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCanop <cano.petrole@gmail.com>2022-06-07 15:41:20 +0200
committerCanop <cano.petrole@gmail.com>2022-06-07 15:41:20 +0200
commitdcdf9d67b3267a2a3f8a92be8374cffbae6e23fb (patch)
tree52b5b28a2862e954359932a69bd9808c03f85f76
parent0ae860274c57f7dbabc68d30dcf534bb062a68f9 (diff)
hint on empty tree: use alt-i or alt-h
Fix #556
-rw-r--r--CHANGELOG.md3
-rw-r--r--Cargo.lock294
-rw-r--r--Cargo.toml7
-rw-r--r--src/app/standard_status.rs12
-rw-r--r--src/browser/browser_state.rs19
-rw-r--r--src/tree/tree.rs9
-rw-r--r--src/tree_build/build_report.rs20
-rw-r--r--src/tree_build/builder.rs28
-rw-r--r--src/tree_build/mod.rs4
9 files changed, 221 insertions, 175 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index afd9489..182ed2c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### next
+- advice to hit alt-i and|or alt-h when no file is visible - Fix #556
+
### v1.13.1 - 2022-05-30
<a name="v1.13.1"></a>
- fix alt-enter failing to cd to directory
diff --git a/Cargo.lock b/Cargo.lock
index 6700dd2..795b66f 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -61,9 +61,9 @@ dependencies = [
[[package]]
name = "anyhow"
-version = "1.0.56"
+version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
+checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
[[package]]
name = "argh"
@@ -82,7 +82,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be69f70ef5497dd6ab331a50bd95c6ac6b8f7f17a7967838332743fbd58dc3b5"
dependencies = [
"argh_shared",
- "heck",
+ "heck 0.3.3",
"proc-macro2",
"quote",
"syn",
@@ -181,7 +181,7 @@ dependencies = [
"strict",
"syntect-no-panic",
"tempfile",
- "termimad 0.20.0",
+ "termimad",
"terminal-clipboard",
"toml",
"umask",
@@ -204,9 +204,9 @@ dependencies = [
[[package]]
name = "bytemuck"
-version = "1.8.0"
+version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e851ca7c24871e7336801608a4797d7376545b6928a10d32d75685687141ead"
+checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc"
[[package]]
name = "byteorder"
@@ -305,11 +305,10 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
[[package]]
name = "coolor"
-version = "0.3.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b78645ef095d812eecfa830f67e35394314e31be71fdba59543274542c950013"
+checksum = "aaebeb52e38d53b890ebcb723ff23462f39353d4e73db48284591e6395a1c25e"
dependencies = [
- "ansi_colours",
"crossterm 0.22.1",
]
@@ -361,9 +360,9 @@ dependencies = [
[[package]]
name = "crossbeam-channel"
-version = "0.5.2"
+version = "0.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa"
+checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -382,10 +381,11 @@ dependencies = [
[[package]]
name = "crossbeam-epoch"
-version = "0.9.7"
+version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9"
+checksum = "1145cf131a2c6ba0615079ab6a638f7e1973ac9c2634fcbeaaad6114246efe8c"
dependencies = [
+ "autocfg",
"cfg-if",
"crossbeam-utils",
"lazy_static",
@@ -395,9 +395,9 @@ dependencies = [
[[package]]
name = "crossbeam-queue"
-version = "0.3.4"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dd435b205a4842da59efd07628f921c096bc1cc0a156835b4fa0bcb9a19bcce"
+checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2"
dependencies = [
"cfg-if",
"crossbeam-utils",
@@ -405,9 +405,9 @@ dependencies = [
[[package]]
name = "crossbeam-utils"
-version = "0.8.7"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6"
+checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
dependencies = [
"cfg-if",
"lazy_static",
@@ -440,7 +440,7 @@ dependencies = [
"libc",
"mio",
"parking_lot",
- "signal-hook 0.3.13",
+ "signal-hook 0.3.14",
"signal-hook-mio",
"winapi",
]
@@ -552,9 +552,9 @@ dependencies = [
[[package]]
name = "dirs-sys"
-version = "0.3.6"
+version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
dependencies = [
"libc",
"redox_users",
@@ -623,14 +623,12 @@ checksum = "9544f10105d33957765016b8a9baea7e689bf1f0f2f32c2fa2f568770c38d2b3"
[[package]]
name = "flate2"
-version = "1.0.22"
+version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e6988e897c1c9c485f43b47a529cef42fde0547f9d8d41a7062518f1d8fc53f"
+checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6"
dependencies = [
- "cfg-if",
"crc32fast",
- "libc",
- "miniz_oxide 0.4.4",
+ "miniz_oxide 0.5.3",
]
[[package]]
@@ -651,9 +649,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.5"
+version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77"
+checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
dependencies = [
"cfg-if",
"libc",
@@ -672,9 +670,9 @@ dependencies = [
[[package]]
name = "git2"
-version = "0.13.25"
+version = "0.14.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6"
+checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c"
dependencies = [
"bitflags",
"libc",
@@ -685,24 +683,23 @@ dependencies = [
[[package]]
name = "glassbench"
-version = "0.3.1"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18232f8d0a65b776d32b887f2aa3ab0230a761ea2c82e4739ae824ec5f2a27a9"
+checksum = "133c8a14cc4a000675a871544b164f446964090897cdaa2448081a56bd2a72bc"
dependencies = [
"base64",
"chrono",
- "crossterm 0.19.0",
+ "crossterm 0.22.1",
"csv2svg",
"git2",
"lazy_static",
- "minimad 0.7.1",
"open",
"rusqlite",
"serde",
"serde_json",
"svg",
"tempfile",
- "termimad 0.10.3",
+ "termimad",
"thiserror",
]
@@ -746,6 +743,12 @@ dependencies = [
]
[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
name = "hermit-abi"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -792,9 +795,9 @@ dependencies = [
[[package]]
name = "indexmap"
-version = "1.8.0"
+version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"
+checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a"
dependencies = [
"autocfg",
"hashbrown 0.11.2",
@@ -826,9 +829,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
[[package]]
name = "itoa"
-version = "1.0.1"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
[[package]]
name = "jobserver"
@@ -890,15 +893,15 @@ dependencies = [
[[package]]
name = "libc"
-version = "0.2.119"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
[[package]]
name = "libgit2-sys"
-version = "0.12.26+1.3.0"
+version = "0.13.4+1.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494"
+checksum = "d0fa6563431ede25f5cc7f6d803c6afbc1c5d3ad3d4925d12c882bf2b526f5d1"
dependencies = [
"cc",
"libc",
@@ -919,9 +922,9 @@ dependencies = [
[[package]]
name = "libz-sys"
-version = "1.1.5"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f35facd4a5673cb5a48822be2be1d4236c1c99cb4113cab7061ac720d5bf859"
+checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf"
dependencies = [
"cc",
"libc",
@@ -946,18 +949,19 @@ checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
[[package]]
name = "lock_api"
-version = "0.4.6"
+version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"
+checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
dependencies = [
+ "autocfg",
"scopeguard",
]
[[package]]
name = "log"
-version = "0.4.14"
+version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
"cfg-if",
]
@@ -970,9 +974,9 @@ checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
[[package]]
name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
[[package]]
name = "memmap"
@@ -995,15 +999,6 @@ dependencies = [
[[package]]
name = "minimad"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6176dd156ab0154ee95322efe2da93796cc338a8a63a6338d64c79419bcbe13"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "minimad"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd37b2e65fbd459544194d8f52ed84027e031684335a062c708774c09d172b0b"
@@ -1031,6 +1026,15 @@ dependencies = [
]
[[package]]
+name = "miniz_oxide"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc"
+dependencies = [
+ "adler",
+]
+
+[[package]]
name = "mio"
version = "0.7.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1076,9 +1080,9 @@ dependencies = [
[[package]]
name = "num-integer"
-version = "0.1.44"
+version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
@@ -1086,9 +1090,9 @@ dependencies = [
[[package]]
name = "num-iter"
-version = "0.1.42"
+version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
dependencies = [
"autocfg",
"num-integer",
@@ -1108,9 +1112,9 @@ dependencies = [
[[package]]
name = "num-traits"
-version = "0.2.14"
+version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
]
@@ -1127,18 +1131,18 @@ dependencies = [
[[package]]
name = "num_threads"
-version = "0.1.4"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c539a50b93a303167eded6e8dff5220cd39447409fb659f4cd24b1f72fe4f133"
+checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
dependencies = [
"libc",
]
[[package]]
name = "once_cell"
-version = "1.10.0"
+version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
[[package]]
name = "onig"
@@ -1265,9 +1269,9 @@ dependencies = [
[[package]]
name = "pkg-config"
-version = "0.3.24"
+version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe"
+checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
[[package]]
name = "plist"
@@ -1279,7 +1283,7 @@ dependencies = [
"indexmap",
"line-wrap",
"serde",
- "time 0.3.7",
+ "time 0.3.9",
"xml-rs",
]
@@ -1309,11 +1313,11 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro2"
-version = "1.0.36"
+version = "1.0.39"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"
+checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
dependencies = [
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
@@ -1336,9 +1340,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.15"
+version = "1.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"
+checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
dependencies = [
"proc-macro2",
]
@@ -1375,9 +1379,9 @@ dependencies = [
[[package]]
name = "rayon"
-version = "1.5.1"
+version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90"
+checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d"
dependencies = [
"autocfg",
"crossbeam-deque",
@@ -1387,41 +1391,41 @@ dependencies = [
[[package]]
name = "rayon-core"
-version = "1.9.1"
+version = "1.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e"
+checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f"
dependencies = [
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-utils",
- "lazy_static",
"num_cpus",
]
[[package]]
name = "redox_syscall"
-version = "0.2.11"
+version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c"
+checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
dependencies = [
"bitflags",
]
[[package]]
name = "redox_users"
-version = "0.4.0"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
"getrandom",
"redox_syscall",
+ "thiserror",
]
[[package]]
name = "regex"
-version = "1.5.5"
+version = "1.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
+checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
dependencies = [
"aho-corasick",
"memchr",
@@ -1436,9 +1440,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
[[package]]
name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
[[package]]
name = "remove_dir_all"
@@ -1475,9 +1479,9 @@ dependencies = [
[[package]]
name = "ryu"
-version = "1.0.9"
+version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
[[package]]
name = "safemem"
@@ -1517,18 +1521,18 @@ dependencies = [
[[package]]
name = "serde"
-version = "1.0.136"
+version = "1.0.137"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.136"
+version = "1.0.137"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
+checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
dependencies = [
"proc-macro2",
"quote",
@@ -1537,11 +1541,11 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.79"
+version = "1.0.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
dependencies = [
- "itoa 1.0.1",
+ "itoa 1.0.2",
"ryu",
"serde",
]
@@ -1559,9 +1563,9 @@ dependencies = [
[[package]]
name = "signal-hook"
-version = "0.3.13"
+version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "647c97df271007dcea485bb74ffdb57f2e683f1306c854f468a0c244badabf2d"
+checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d"
dependencies = [
"libc",
"signal-hook-registry",
@@ -1569,13 +1573,13 @@ dependencies = [
[[package]]
name = "signal-hook-mio"
-version = "0.2.1"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29fd5867f1c4f2c5be079aee7a2adf1152ebb04a4bc4d341f504b7dece607ed4"
+checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af"
dependencies = [
"libc",
"mio",
- "signal-hook 0.3.13",
+ "signal-hook 0.3.14",
]
[[package]]
@@ -1601,9 +1605,9 @@ checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
[[package]]
name = "snafu"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eba135d2c579aa65364522eb78590cdf703176ef71ad4c32b00f58f7afb2df5"
+checksum = "5177903bf45656592d9eb5c0e22f408fc023aae51dbe2088889b71633ba451f2"
dependencies = [
"doc-comment",
"snafu-derive",
@@ -1611,11 +1615,11 @@ dependencies = [
[[package]]
name = "snafu-derive"
-version = "0.7.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a7fe9b0669ef117c5cabc5549638528f36771f058ff977d7689deb517833a75"
+checksum = "410b26ed97440d90ced3e2488c868d56a86e2064f5d7d6f417909b286afe25e5"
dependencies = [
- "heck",
+ "heck 0.4.0",
"proc-macro2",
"quote",
"syn",
@@ -1629,9 +1633,9 @@ checksum = "8190298e89d4080e9c025535f73cacec4d51ff4495819dd8fdf1ae374c75ee80"
[[package]]
name = "str-buf"
-version = "1.0.5"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d44a3643b4ff9caf57abcee9c2c621d6c03d9135e0d8b589bd9afb5992cb176a"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
[[package]]
name = "strict"
@@ -1653,13 +1657,13 @@ checksum = "3bdb25a4593d6656239319426f4025f7a658157e25e89f0e0319d7516d46042d"
[[package]]
name = "syn"
-version = "1.0.86"
+version = "1.0.96"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"
+checksum = "0748dd251e24453cb8717f0354206b91557e4ec8703673a4b30208f2abaf1ebf"
dependencies = [
"proc-macro2",
"quote",
- "unicode-xid",
+ "unicode-ident",
]
[[package]]
@@ -1700,28 +1704,14 @@ dependencies = [
[[package]]
name = "termimad"
-version = "0.10.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a0cc62bee46f8532b579609b5b2ad3f9dc8e9f952dc783c7c882eed0c5ed785"
-dependencies = [
- "crossbeam",
- "crossterm 0.19.0",
- "lazy_static",
- "minimad 0.7.1",
- "thiserror",
- "unicode-width",
-]
-
-[[package]]
-name = "termimad"
-version = "0.20.0"
+version = "0.20.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06968d34307feb19a7ab8e5678d5b318c9021c16b0a913d76dbdef943391cf0b"
+checksum = "48c14caf224b3f3d43d93d0532098f9e4906bd79e0978a2e10951f17aab7898b"
dependencies = [
"coolor",
"crossbeam",
"crossterm 0.22.1",
- "minimad 0.9.0",
+ "minimad",
"thiserror",
"unicode-width",
]
@@ -1755,18 +1745,18 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "1.0.30"
+version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
-version = "1.0.30"
+version = "1.0.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
dependencies = [
"proc-macro2",
"quote",
@@ -1796,20 +1786,20 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.7"
+version = "0.3.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d"
+checksum = "c2702e08a7a860f005826c6815dcac101b19b5eb330c27fe4a5928fec1d20ddd"
dependencies = [
- "itoa 1.0.1",
+ "itoa 1.0.2",
"libc",
"num_threads",
]
[[package]]
name = "tinyvec"
-version = "1.5.1"
+version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
dependencies = [
"tinyvec_macros",
]
@@ -1822,9 +1812,9 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "toml"
-version = "0.5.8"
+version = "0.5.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
+checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
dependencies = [
"serde",
]
@@ -1837,9 +1827,15 @@ checksum = "46b0c16eadfb312c7acd6970fc97d1f3152eb536714a2ff72ca09a92cae6fa67"
[[package]]
name = "unicode-bidi"
-version = "0.3.7"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f"
+checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
[[package]]
name = "unicode-normalization"
@@ -1863,12 +1859,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
[[package]]
-name = "unicode-xid"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
-
-[[package]]
name = "url"
version = "2.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1927,9 +1917,9 @@ checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
[[package]]
name = "weezl"
-version = "0.1.5"
+version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8b77fdfd5a253be4ab714e4ffa3c49caf146b4de743e97510c0656cf90f1e8e"
+checksum = "9c97e489d8f836838d497091de568cf16b117486d529ec5579233521065bd5e4"
[[package]]
name = "winapi"
diff --git a/Cargo.toml b/Cargo.toml
index 7c2a10b..82daf97 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,7 +11,7 @@ license = "MIT"
categories = ["command-line-utilities"]
readme = "README.md"
build = "build.rs"
-rust-version = "1.58"
+rust-version = "1.60"
exclude = ["website", "broot*.zip"]
[features]
@@ -36,7 +36,7 @@ deser-hjson = "1.0.2"
directories = "3.0"
file-size = "1.0.3"
fnv = "1.0.7"
-git2 = { version="0.13", default-features=false }
+git2 = { version="0.14", default-features=false }
glob = "0.3"
id-arena = "2.2.1"
image = "0.23.14"
@@ -65,7 +65,7 @@ umask = "2.0.0"
unicode-width = "0.1.8"
[dev-dependencies]
-glassbench = "0.3.0"
+glassbench = "0.3.2"
[target.'cfg(unix)'.dependencies]
lfs-core = "0.11.0"
@@ -108,7 +108,6 @@ harness = false
# glassbench = { path = "../glassbench" }
# lazy-regex = { path = "../lazy-regex" }
# lfs-core = { path = "../lfs-core" }
-# minimad = { path = "../minimad" }
# secular = { path = "../secular", features=["normalization"] }
# strict = { path = "../strict" }
# syntect = { path = "../syntect" }
diff --git a/src/app/standard_status.rs b/src/app/standard_status.rs
index 5a4c123..dd05863 100644
--- a/src/app/standard_status.rs
+++ b/src/app/standard_status.rs
@@ -8,7 +8,7 @@ use {
},
};
-/// all the precomputed status which don't involve a verb
+/// All the precomputed status which don't involve a verb
pub struct StandardStatus {
tree_top_focus: String, // go up (if not at root)
tree_dir_focus: String,
@@ -23,6 +23,8 @@ pub struct StandardStatus {
not_first_state: String, // "esc to go back"
help: String,
no_verb: String,
+ pub all_files_hidden: Option<String>,
+ pub all_files_git_ignored: Option<String>,
}
impl StandardStatus {
@@ -51,6 +53,12 @@ impl StandardStatus {
let not_first_state = "*esc* to go back".to_string();
let help = "*?* for help".to_string();
let no_verb = "a space then a verb".to_string();
+ let all_files_hidden = verb_store
+ .key_desc_of_internal(Internal::toggle_hidden)
+ .map(|k| format!("Some files are hidden, use *{}* to display them", k));
+ let all_files_git_ignored = verb_store
+ .key_desc_of_internal(Internal::toggle_git_ignore)
+ .map(|k| format!("Some files are git-ignored, use *{}* to display them", k));
Self {
tree_top_focus,
tree_dir_focus,
@@ -66,6 +74,8 @@ impl StandardStatus {
not_first_state,
help,
no_verb,
+ all_files_hidden,
+ all_files_git_ignored,
}
}
pub fn builder<'s>(
diff --git a/src/browser/browser_state.rs b/src/browser/browser_state.rs
index 8f23cac..2516825 100644
--- a/src/browser/browser_state.rs
+++ b/src/browser/browser_state.rs
@@ -578,14 +578,29 @@ impl PanelState for BrowserState {
has_previous_state: bool,
con: &AppContext,
) -> Status {
+ let tree = self.displayed_tree();
+ if tree.is_empty() {
+ if tree.build_report.hidden_count > 0 {
+ let mut parts = Vec::new();
+ if let Some(md) = con.standard_status.all_files_hidden.clone() {
+ parts.push(md);
+ }
+ if let Some(md) = con.standard_status.all_files_git_ignored.clone() {
+ parts.push(md);
+ }
+ if !parts.is_empty() {
+ return Status::from_error(parts.join(". "));
+ }
+ }
+ }
let mut ssb = con.standard_status.builder(
PanelStateType::Tree,
- self.displayed_tree().selected_line().as_selection(),
+ tree.selected_line().as_selection(),
);
ssb.has_previous_state = has_previous_state;
ssb.is_filtered = self.filtered_tree.is_some();
ssb.has_removed_pattern = false;
- ssb.on_tree_root = self.displayed_tree().selection == 0;
+ ssb.on_tree_root = tree.selection == 0;
ssb.status()
}
diff --git a/src/tree/tree.rs b/src/tree/tree.rs
index ac32d9e..625ce16 100644
--- a/src/tree/tree.rs
+++ b/src/tree/tree.rs
@@ -7,7 +7,7 @@ use {
git::TreeGitStatus,
task_sync::ComputationResult,
task_sync::Dam,
- tree_build::{BId, TreeBuilder},
+ tree_build::{BId, BuildReport, TreeBuilder},
},
fnv::FnvHashMap,
std::{
@@ -27,9 +27,9 @@ pub struct Tree {
pub selection: usize, // there's always a selection (starts with root, which is 0)
pub options: TreeOptions,
pub scroll: usize, // the number of lines at the top hidden because of scrolling
- pub nb_gitignored: u32, // number of times a gitignore pattern excluded a file
pub total_search: bool, // whether the search was made on all children
pub git_status: ComputationResult<TreeGitStatus>,
+ pub build_report: BuildReport,
}
impl Tree {
@@ -70,7 +70,6 @@ impl Tree {
/// - compute left branchs
pub fn after_lines_changed(&mut self) {
-
// we need to order the lines to build the tree.
// It's a little complicated because
// - we want a case insensitive sort
@@ -190,6 +189,10 @@ impl Tree {
}
}
+ pub fn is_empty(&self) -> bool {
+ self.lines.len() == 1
+ }
+
pub fn has_branch(&self, line_index: usize, depth: usize) -> bool {
if line_index >= self.lines.len() {
return false;
diff --git a/src/tree_build/build_report.rs b/src/tree_build/build_report.rs
new file mode 100644
index 0000000..c8252cd
--- /dev/null
+++ b/src/tree_build/build_report.rs
@@ -0,0 +1,20 @@
+
+
+/// Information from the builder about the
+/// tree operation
+///
+/// A file is counted at most once here
+#[derive(Debug, Clone, Copy, Default)]
+pub struct BuildReport {
+
+ /// number of times a gitignore pattern excluded a file
+ pub gitignored_count: usize,
+
+ /// number of times a file was excluded because hidden
+ /// (this count stays at zero if hidden files are displayed)
+ pub hidden_count: usize,
+
+ /// number of errors excluding a file
+ pub error_count: usize,
+
+}
diff --git a/src/tree_build/builder.rs b/src/tree_build/builder.rs
index f5b6209..b98202a 100644
--- a/src/tree_build/builder.rs
+++ b/src/tree_build/builder.rs
@@ -1,6 +1,7 @@
use {
super::{
bid::{BId, SortableBId},
+ BuildReport,
bline::BLine,
},
crate::{
@@ -15,7 +16,6 @@ use {
},
git2::Repository,
id_arena::Arena,
- rayon::prelude::*,
std::{
collections::{BinaryHeap, VecDeque},
fs,
@@ -56,7 +56,6 @@ static NOT_LONG: Duration = Duration::from_millis(900);
pub struct TreeBuilder<'c> {
pub options: TreeOptions,
targeted_size: usize, // the number of lines we should fill (height of the screen)
- nb_gitignored: u32, // number of times a gitignore pattern excluded a file
blines: Arena<BLine>,
root_id: BId,