Hey folks. Releasing v1.4.0 with many new features, improvements, and bug fixes.
We have an async file preview now, a zoxide panel, and various new features improving UX.
Install:
Click me to know how to install
Highlights
-
We have the Zoxide Panel now. Ensure zoxide is installed on your system, set
zoxide_support
totrue
in the config, and pressz
to use zoxide. -
File previewing is now async, meaning reduced lag while scrolling through images, or on slow systems.
-
Many bug fixes. See 'Detailed Change Summary'
Internal Updates
- Most file operations are now truly async with the usage of the recommended
tea.Cmd
pattern. - Enabled many new linters to improve code quality.
- Moved golangci-lint to v2. Now developers don't need to keep the old v1 in their systems.
- Refactored file preview in its own package for better maintainability and readability.
- Fixed flaky unit tests.
Detailed Change Summary
Details
Update
- feat: File operation via tea cmd #963 by @lazysegtree
- feat: processbar improvements, package separation, better channel management #973 by @lazysegtree
- feat: enable lll and recvcheck linter, fix tests, more refactors #977 by @lazysegtree
- feat: Remove channel for notification models #979 by @lazysegtree
- feat: enable cyclop, funlen, gocognit, gocyclo linters, and refactor large functions #984 by @lazysegtree
- feat: Add a new hotkey to handle cd-on-quit whenever needed #924 by @ahmed-habbachi
- feat: added option to permanently delete files #987 by @hupender
- feat: Preview panel separation #1021 by @lazysegtree
- feat: Add search functionality to help menu #1011 by @iZarrios
- feat: Use zoxide lib #1036 by @lazysegtree
- feat: Add zoxide directory tracking on navigation #1041 by @lazysegtree
- feat: Zoxide integration #1039 by @lazysegtree
- feat: Select mode with better feedback #1074 by @lazysegtree
- feat: owner/group in the metadata #1093 by @xelavopelk
- feat: Async zoxide #1104 by @lazysegtree
Bug Fix
- fix: sorting in searchbar #985 by @hupender
- fix: Async rendering, Include clipboard check in paste items, and update linter configs #997 by @lazysegtree
- fix: Move utility functions to utils package #1012 by @lazysegtree
- fix: Refactoring and separation of preview panel and searchbar in help menu #1013 by @lazysegtree
- fix(filePanel): allow focusType to be set correctly #1033 by @faisal-990
- fix(ci): Update gomod2nix.toml, allow pre release in version output, release 1.4.0-rc1, bug fixes, and improvements #1054 by @lazysegtree
- fix(nix): resolve build failures in the nix flake #1068 by @Frost-Phoenix
- fix: Retry the file deletion to prevent flakies (#938) #1076 by @lazysegtree
- fix(issue-1066): Fixed issue where enter was not searchable #1078 by @Simpaqt
- fix(#1073): Tech debt fix #1077 by @Simpaqt
- fix: fix deleted directory not able to remove from pins (#1067) #1081 by @yorukot
- fix: fix child process spawning attached #1084 by @guemidiborhane
- fix: always clear images when showing a FullScreenStyle #1094 by @snikoletopoulos
- fix: Allow j and k keys in zoxide #1102 by @lazysegtree
- fix: Zoxide improvements and 1.4.0-rc2 #1105 by @lazysegtree
- fix: rename cursor beginning on wrong character because of multiple dots in name (#813) #1112 by @SyedAsadK
- fix: check and fix file panel scroll position on height changes #1095 by @snikoletopoulos
Optimization
Documentation
- docs: fix incorrect zoxide plugin config name #1049 by @shree-xvi
- docs(hotkeys): Fix typo in vimHotkeys.toml comments #1080 by @wleoncio
- docs: add section for core maintainers in README.md #1088 by @yorukot
- chore: add winget install instruction to readme and website #943 by @claykom
Dependencies
- chore(deps): update dependency go to v1.25.0, golangci-lint to v2, golangci-lint actions to v8 #750 by @renovate[bot]
- chore(deps): update amannn/action-semantic-pull-request action to v6 #1006 by @renovate[bot]
- chore(deps): update actions/first-interaction action to v3 #1005 by @renovate[bot]
- chore(deps): update actions/checkout action to v5 #1004 by @renovate[bot]
- chore(deps): bump astro from 5.10.1 to 5.12.8 #982 by @dependabot[bot]
- fix(deps): update module golang.org/x/mod to v0.27.0 #989 by @renovate[bot]
- fix(deps): update dependency @expressive-code/plugin-collapsible-sections to v0.41.3 #990 by @renovate[bot]
- fix(deps): update dependency sharp to v0.34.3 #992 by @renovate[bot]
- fix(deps): update dependency @expressive-code/plugin-line-numbers to v0.41.3 #991 by @renovate[bot]
- chore(deps): update dependency go to v1.25.0 #994 by @renovate[bot]
- fix(deps): update astro monorepo #995 by @renovate[bot]
- fix(deps): update dependency @astrojs/starlight to ^0.35.0 #1000 by @renovate[bot]
- fix(deps): update module github.com/urfave/cli/v3 to v3.4.1 #1001 by @renovate[bot]
- fix(deps): update module golang.org/x/text to v0.28.0 #1003 by @renovate[bot]
Misc
- chore: migrate from superfile.netlify.app to superfile.dev #1087 by @yorukot
- refactor(filepanel): replace filePanelFocusType with isFocused boolean #1040 by @faisal-990
- refactor(ansi): Migrate from github.com/charmbracelet/x/exp/term/ansi to github.com/charmbracelet/x/ansi #1044 by @faisal-990
- refactor: common operation on pinned directory file using PinnedManager #1085 by @Manaswa-S
- test: unit tests for pinned manager #1090 by @Manaswa-S
New Contributors
- @hupender made their first contribution in #985
- @ahmed-habbachi made their first contribution in #924
- @iZarrios made their first contribution in #1011
- @faisal-990 made their first contribution in #1033
- @shree-xvi made their first contribution in #1049
- @Simpaqt made their first contribution in #1078
- @wleoncio made their first contribution in #1080
- @guemidiborhane made their first contribution in #1084
- @Manaswa-S made their first contribution in #1085
- @xelavopelk made their first contribution in #1093
- @snikoletopoulos made their first contribution in #1094
- @SyedAsadK made their first contribution in #1112
Full Changelog: v1.3.3...v1.4.0