Releases: darrenldl/docfd
12.3.2
12.3.1
12.3.0
Note: This update contains a feature that requires removing the existing index DB to take effect.
- Docfd script comment support improvement
- Added
;prefix for system comments, which are not preserved after editing of command history #now denotes user comment and is preserved after editing of command history- Ordering of
#is also preserved during saving a session as script
- Added
- Added link opening support via LINKS mode
- This will only work after recreating the index DB
lopens LINKS mode with the same navigation keybindsEnterto open linkoto open link and remain in LINKS- Links which are closest to the selected search result will be prioritized first
- Added key binding
xhto clear command history quickly
12.2.0
- Dependencies adjustment for CI build
- Internal refactoring
- Refactored document store module into session state module to
better reflect that the data structure is capturing not just
documents and search results, but also some UI states, etc
- Refactored document store module into session state module to
- Moved screen split handling to the level of session state instead of
plain UI state- This allows Docfd script to better capture the view on screen
- Added
Shift+Tabfor changing screen split ratio in the other
direction, and removed the "rotating" behaviour ofTab
12.1.0
- Added missing sorting based on paths when path dates are the same
- Added PDF viewer integration for Zathura on Linux
- Moved sorting handling to the level of document store command instead of just plain UI update
- This allows Docfd script to better capture the view on screen
- Fixed default cache directory location on macOS
- Changed from
~/Library/Application Supportto~/Library/Caches
- Changed from
- Added
--reverseto fzf invocation for better UX - Added
Ctrl+Dfor script deletion
12.0.0
Author's notes
To those who have been waiting for a stable release, thank you for your patience!
I had been releasing the updates in alpha versions as there has been a lot of experimentation on both the feature set and engine of Docfd, which meant a lot of things were in flux.
But now that most of the major engineering flaws have been addressed, and also after daily driving Docfd for a while, I feel it is a good time to make a stable release. (I did originally hope to only make a stable release after the test suite had reached a much stronger coverage of the code base, but I am not sure when I will have the time and energy for that.)
Docfd 12.0.0 is the culmination of a quite a lot of engineering effort. I hope you will find this release useful and pleasant to use, whether you are a continued user or a new user.
Release notes
This contains a breaking DB change, you will need to remove index DB generated by Docfd version prior to 12.0.0-alpha.13
Highlights of changes since 11.0.1
-
Moved to using a global word table to reduce index DB size and speed up search (12.0.0-alpha.13)
- This is the breaking DB change stated above
-
Added further search speed optimizations (12.0.0)
- Added an additional document pruning stage
- Added a first word candidate pruning stage based on length of the first search word
- Searching for short words should now feel much more responsive
-
Replaced filter glob with a more powerful filter language, with
autocomplete in filter field (12.0.0-alpha.1, 12.0.0-alpha.2,
12.0.0-alpha.5, 12.0.0-alpha.6, 12.0.0-alpha.10, 12.0.0-alpha.11) -
Added content view pane scrolling (12.0.0-alpha.5, 12.0.0-alpha.8)
- Controlled by
-/=
- Controlled by
-
Added "save script" and "load script" functionality to make it
actually viable to reuse Docfd commands (12.0.0-alpha.8,
12.0.0-alpha.9) -
SQL query optimizations for prefix and exact search terms
(12.0.0-alpha.3) -
Key binding info grid improvements (12.0.0-alpha.4)
-
Added more key bindings
-
Packed columns more tightly
-
-
Added
--paths-from -to accept list of paths from stdin
(12.0.0-alpha.3) -
Added WSL clipboard integration (12.0.0-alpha.4)
-
Added more marking key bindings (12.0.0-alpha.4)
mark listed(ml) marks all currently listed documentsunmark listed(Ml) unmarks all currently listed documents
-
--open-withplaceholder handling fixes (12.0.0-alpha.4)- Using
{page_num}and{line_num}crashes in 11.0.1
when there are no search results
- Using
-
Added sorting to document list (12.0.0-alpha.11, 12.0.0)
sfor sort ascending mode andShift+Sfor sort descending mode- Under the sort modes, the sort by types are as follows:
psort by pathdsort by path datessort by scoremsort by modification timefsort by an interactive fzf search- Selected option will be ranked the highest
- Rest of the documents will be ranked using the ranking from fzf
-
Adjusted attributes listed in document list entry (12.0.0-alpha.11)
- Added path date
- Replaced last scan time with last modified time
-
Reworked the internal architecture of document store snapshots
storage and management, which makes the overall interaction
between UI and core code much more robust (12.0.0-alpha.11)
Changes since 12.0.0-alpha.13
-
Added further search speed optimizations:
- Added an additional document pruning stage
- Added a first word candidate pruning stage based on length of the first search word
- Searching for short words should now feel much more responsive
-
Fixed interaction with fzf (which is used in some selection menus) on macOS
due to different behavior ofUnix.waitpidon macOS compared to Linux -
Document sorting fine tuning
-
Fixed document sorting fallback behavior
- If there is no search expression but sorting method chosen is to
sort by score, then sorting method falls back to the option
specified by--sort-no-score
- If there is no search expression but sorting method chosen is to
-
Fixed macOS detection
-
Updated
--open-withto accept a list of extensions, e.g.
--open-with ts,js:detached="... {path}" -
Added sort by fzf functionality
- Under sort mode
fsort by an interactive fzf search- Selected option will be ranked the highest
- Rest of the documents will be ranked using the ranking from fzf
- Under sort mode
12.0.0-alpha.13
-
Moved to using a global word table to reduce index DB size and speed up search
- This is a breaking DB change, you will need to remove index DB generated by older versions of Docfd
-
Added missing mutexes for caches, should further reduce random crashes
-
Added more path date extraction formats
yyyy-mmm-dd,yyyy-mmmm-dd,dd-mmm-yyyy,dd-mmmm-yyyy-is an optional separator that is not a digit and not a letter
12.0.0-alpha.12
-
Made resetting of search result selection and content view offset less aggressive
- Some changes in 12.0.0-alpha.11 caused some UI counters to reset more frequently than desired
12.0.0-alpha.11
-
Removed disabling of drop mode key binding
dwhen searching or filtering is ongoing -
Fixed content view pane offset not resetting when mouse is used to scroll search result list
-
Fixed content view pane staying small while scrolling up when the search result is close to the bottom of the file
-
Swapped all mutexes to Eio mutexes to hopefully remove the very random freezes that occur quite rarely
- They feel like deadlocks due to mixing Eio mutexes
(which block fiber) and stdlib mutexes (which block an entire domain)
- They feel like deadlocks due to mixing Eio mutexes
-
Added sorting to document list
sfor sort ascending mode andShift+Sfor sort descending mode- Under the sort modes, the sort by types are as follows:
psort by pathdsort by path datessort by scoremsort by modification time
-
Added
--sortand--sort-no-score- Latter is mainly useful for when
--files-without-matchis used
- Latter is mainly useful for when
-
Added
yyyymmddpath date extraction -
Added
mod-dateto filter language -
Adjusted attributes listed in document list entry
- Added path date
- Replaced last scan time with last modified time
-
Reworked
--scriptinto--scriptand--start-with-script--scriptis now only for non-interactive use--start-with-scriptis only for interactive use- This mirrors the duals
--filtervs--start-with-filterand--searchvs--start-with-search
-
Reworked the internal architecture of document store snapshots storage and management
-
Snapshots are now centrally managed by
Document_store_manager, along with
improvements to snapshot handling logic in general -
This makes the overall interaction between UI and core code
much more robust, and eliminates random workarounds used to
deal with UI and data synchronization, which have
been riddled with random minor bugs
-
12.0.0-alpha.10
-
Added basic autocomplete to filter field
-
Improved script save autocomplete to insert longest common prefix
-
Fixed script save autocomplete so it no longer erases original text when no recommendations are available