Skip to content

Releases: darrenldl/docfd

12.3.2

24 Feb 10:58

Choose a tag to compare

  • Fixed missing stop signal passing for content:"..." filter expression handling
    • Previously, filter expressions with content:"..." were not
      cancelled properly
  • Added additional guards against potential freezing due to DB pool
    exhaustion or DB connection issues

12.3.1

17 Feb 13:16

Choose a tag to compare

  • Fixed key binding info grid
    • Added the missing l key binding info
    • Fixed some other key binding labels

12.3.0

16 Feb 13:16

Choose a tag to compare

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 link opening support via LINKS mode
    • This will only work after recreating the index DB
    • l opens LINKS mode with the same navigation keybinds
      • Enter to open link
      • o to open link and remain in LINKS
      • Links which are closest to the selected search result will be prioritized first
  • Added key binding xh to clear command history quickly

12.2.0

01 Dec 14:07

Choose a tag to compare

  • 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
  • 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+Tab for changing screen split ratio in the other
    direction, and removed the "rotating" behaviour of Tab

12.1.0

22 Nov 12:11

Choose a tag to compare

  • 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 Support to ~/Library/Caches
  • Added --reverse to fzf invocation for better UX
  • Added Ctrl+D for script deletion

12.0.0

13 Oct 10:52

Choose a tag to compare

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 -/=
  • 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 documents
    • unmark listed (Ml) unmarks all currently listed documents
  • --open-with placeholder handling fixes (12.0.0-alpha.4)

    • Using {page_num} and {line_num} crashes in 11.0.1
      when there are no search results
  • Added sorting to document list (12.0.0-alpha.11, 12.0.0)

    • s for sort ascending mode and Shift+S for sort descending mode
    • Under the sort modes, the sort by types are as follows:
      • p sort by path
      • d sort by path date
      • s sort by score
      • m sort by modification time
      • f sort 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 of Unix.waitpid on 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
  • Fixed macOS detection

  • Updated --open-with to accept a list of extensions, e.g.
    --open-with ts,js:detached="... {path}"

  • Added sort by fzf functionality

    • Under sort mode
      • f sort by an interactive fzf search
        • Selected option will be ranked the highest
        • Rest of the documents will be ranked using the ranking from fzf

12.0.0-alpha.13

13 Sep 11:38

Choose a tag to compare

  • 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

25 Aug 10:13

Choose a tag to compare

  • 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

20 Aug 11:05

Choose a tag to compare

  • Removed disabling of drop mode key binding d when 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)
  • Added sorting to document list

    • s for sort ascending mode and Shift+S for sort descending mode
    • Under the sort modes, the sort by types are as follows:
      • p sort by path
      • d sort by path date
      • s sort by score
      • m sort by modification time
  • Added --sort and --sort-no-score

    • Latter is mainly useful for when --files-without-match is used
  • Added yyyymmdd path date extraction

  • Added mod-date to filter language

  • Adjusted attributes listed in document list entry

    • Added path date
    • Replaced last scan time with last modified time
  • Reworked --script into --script and --start-with-script

    • --script is now only for non-interactive use
    • --start-with-script is only for interactive use
    • This mirrors the duals --filter vs --start-with-filter and --search vs --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

08 Jul 13:17

Choose a tag to compare

  • 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