Now it uses realpath for registering and validating DB. This means, if you have entries that has filenames differing only for case, it can deal with them as they exist.
Before this, it has miscalculated scores for such cases. For example, in case you have `/path/to/foo.lua` and `/path/to/Foo.lua`, it registers entries for each file. Now it detects accurate filename for the specified one, and removes it in validation.
* test: separate logic for utils
* fix!: register realpath for consistency
* refactor: convert fs module from class
* refactor: move db initialization phase to start()
* fix: run database:start() truly asynchronously
* fix: call each functions with async wrapping
* refactor: add types for args in command
* fix: run register() synchronously
Because vim.api.nvim_* cannot be used in asynchronous functions.
* docs: add note for calling setup() twice
* fix: run non-fast logic on next tick
* feat: add function to query the DB
* docs: add documentation for frecency.query()
* test: fix tests to run with `timestamps` property
* test: add tests for frecency.query()
* chore: change the position of `?`
* fix: use config module to simplify code
* test: fix tests to use frecency.config
* test: remove macOS with nightly Neovim temporarily
* fix: use plenary.path to manage paths in Windows
* fix: filter out paths validly in Windows
* fix: detect default `ignore_patterns` in Windows
fix: #169
* fix: join paths validly in Windows
* docs: fix value for `ignore_patterns` in Windows
* fix: avoid duplication of separators in paths
Fix: #171
This fixes only in native logic. The one with SQLite has still bugs.
……but that may not be fixed.
* feat: read workspace files by external commands
* fix: avoid errors when it manages invalid buffers
* feat: add workspace_scan_cmd to select a way
* docs: describe `workspace_scan_cmd` option
* refactor: unite logic for finder & async_finder
* chore: fix types
* chore: add sleep to show results at first
* refactor: fix to find results separatedly
* test: remove unnecessary ones and fix others
* test: add matrix for 0.9.x & Windows
* test: use forked plenary.log for Windows
* test: fix to use strptime in Windows
* test: run again if segmentation fault in Windows
* test: loosen timeout for Perl
* test: use the latest plenary.nvim again
* chore: fix types
* chore: change variable name
* feat: watch changes of DB to reload
* chore: add comments to steps
* test: copy whole modules for testing in Windows
* fix: make valid paths for Windows
* test: add tests for Native
* test: use robust way to calculate time
vim.fn.strptime cannot be used in Lua loop
* chore: fix comments
* refactor: simplify the code
* test: loosen condition to detect failures
* test: disable some logging
Many loggings make the test fail.
* test: run tests sequentially in Windows
* test: loosen timeout not to fail on Windows
* I did an overhall for all codes and added typing by Lua-language-server and tests. It also works on CI.
* Now it searches files on the workspace completely asynchronously. It does not block your text input. (Fix#106)
Make count = 1 when you open a file you've never opened (Fix#107)