* feat!: remove code for SQLite
ref [Introduce revised telescope-frecency.nvim : neovim](https://www.reddit.com/r/neovim/comments/174m8zu/introduce_revised_telescopefrecencynvim/)
I have deprecated SQLite features 4 months ago. It is the time to remove
code for them.
* test: fix test to load telescope validly
* test: remove sqlite.lua from CI settings
* test: test database as native
* fix: add lacked type from old database/sqlite.lua
* docs: remove description for SQLite3 logic
* chore: fix types
* chore: add types for Database:raw_table
* 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.
* fix!: no confirm always when `db_safe_mode` is off
Fix: #50Fix: #167
Before this, `db_safe_mode = false` makes it no confirmation in
`:FrecencyValidate!`, but it still does in `:FrecencyValidate` and the
auto validation in Neovim's startup.
After this commit, `db_safe_mode = false` makes it no confirmation
always when you see.
And `force` option in `Frecency:validate_database(force)` now means
weather it should remove files less than threshold.
* docs: add notes for lacked options
* 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: load lazily sqlite to get filename
* feat: add logic to start migration automatically
* feat: make use_sqlite = false be the default
* docs: update README for removing dependencies
* feat: migrate silently when use_sqlite = false
* chore: remove `SQLite3` from messages
* test: run again max to 5 times in Windows
* refactor: make logic for Database be abstract
* feat: add logic for DB by string.dump
* fix: run with async.void to run synchronously
* test: add tests for native feature
* feat!: sort candidates by path when score is same
This is needed because candidates from SQLite is sorted by id, but ones from native is sorted by path.
* chore: clean up types
* feat: add lock/unlock feature to access DB
* test: use async version of busted
And disable benchmark tests (fix later)
* test: add tests for file_lock
* chore: use more explicit names
* chore: use plenary.log instead
* fix: wait async functions definitely
* feat: add migrator
* chore: fix logging
* fix: detect emptiness of the table
* fix: deal with buffer with no names
* test: loosen the condition temporarily
* test: add tests for migrator
* fix: return true when the table is not empty
* feat: load sqlite lazily not to require in start
* chore: add logging to calculate time for fetching
* feat: add converter from native code to SQLite
* feat: warn when sqlite.lua is not available
* feat: add FrecencyMigrateDB to migrate DB
* docs: add note for native code logic
* test: ignore type bug
* Use Lua function to complete tags
* Use Lua func to define validating command
* Use new API's to define options & mappings
* Add not for usage of `FrecencyValidate`
* draft implementation of tags/filters
* .
* add filtering:
- extended substring sorter to have modes:
- when current string is prefixed by `:foo`, results are tag_names that
come from tags/workspaces table. (if `:foo ` token is incomplete it is
ignored)
- when a complete workspace tag is matched ':foobar:', results are
indexed_files filtered by if their parent_dir is a descendant of the
workspace_dir
- a recursive scan_dir() result is added to the :foobar: filter
results; any non-indexed_files are given a score of zero, and are
alphabetically sorted below the indexed_results
- tab completion for tab_names in insert mode`:foo|` state: cycles
through available options
* add completion file
* use attach_mappings for <CR> map
* stop completion being enabled multiple times
* improve keys
* improve completion cancellation
* add dynamic `lsp` tag
* add dynamic `lsp` tag
* fix empty lsp workspaces
* remove hardcoded workspaces and allow config from ext_config
* add filter highlight and some fixes
* .
* add workspace filters to readme
* wip LSP workspace filter
* merge ignore_patterns fix
* change LSP_ROOT tagname to LSP
* fix setting default values
* .
* update readme with filter instructions
* remove debug message
* improve relative paths
* improve relative paths
* WIP dynamic column sizes
* WIP filter_column_width
* fix keymaps
* .
* feat: persistent filters
* refactor config creation
* fix: filter directory column autosize
* improve LSP workspace paths
* .
* remove workspace filter output
* cache persistent filter results
* fix cached results
* .
* remove results cache; sorting is the expensive part
* respect ignore patterns for non-indexed files.
* return table on on_input_filter_cb