diff options
| author | TJ DeVries <devries.timothyj@gmail.com> | 2021-08-20 11:11:24 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-20 11:11:24 -0400 |
| commit | a97af306c4e9c9a6fa7c886c0ffe3079822c5203 (patch) | |
| tree | f5e2b50a767e93618d0d8fdddb8a964c90633c8a /scratch/file_finder.lua | |
| parent | d6d28dbe324de9826a579155076873888169ba0f (diff) | |
feat(performance): Major performance improvements using async v2 from @oberblastmeister (#987)
* start: Working w/ async jobs
* short circuit to using bad finder if you pass writer.
Diffstat (limited to 'scratch/file_finder.lua')
| -rw-r--r-- | scratch/file_finder.lua | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/scratch/file_finder.lua b/scratch/file_finder.lua deleted file mode 100644 index bf3c411..0000000 --- a/scratch/file_finder.lua +++ /dev/null @@ -1,80 +0,0 @@ -local telescope = require('telescope') - --- Goals: --- 1. You pick a directory --- 2. We `git ls-files` in that directory ONCE and ONLY ONCE to get the results. --- 3. You can fuzzy find those results w/ fzf --- 4. Select one and go to file. - - ---[[ -ls_files_job.start() -fzf_job.stdin = ls_files_job.stdout - - self.stdin = vim.loop.new_pipe(false) - -> self.stdin = finder.stdout - - - -- Finder: - intermediary_pipe = self.stdout - - -- repeat send this pipe when we want to get new filtering - self.stdin = intermediary_pipe - - - -- Filter + Sort - ok, we could do scoring + cutoff and have that always be the case. - - OR - - filter takes a function, signature (prompt: str, line: str): number - - => echo $line | fzf --filter "prompt" - return stdout != "" - - => lua_fuzzy_finder(prompt, line) return true if good enough - - TODO: Rename everything to be more clear like the name below. - IFilterSorterAbstractFactoryGeneratorv1ProtoBeta - ---]] - - -local file_finder = telescope.finders.new { - static = true, - - -- self, prompt - fn_command = function() - return 'git ls-files' - end, -} - -local file_sorter = telescope.sorters.get_ngram_sorter() - --- local string_distance = require('telescope.algos.string_distance') --- new { --- scoring_function = function(self, prompt, line) --- if prompt == '' then return 0 end --- if not line then return -1 end - --- return tonumber(vim.fn.systemlist(string.format( --- "echo '%s' | ~/tmp/fuzzy_test/target/debug/fuzzy_test '%s'", --- line, --- prompt --- ))[1]) --- end --- } - - -local file_previewer = telescope.previewers.vim_buffer_or_bat - -local file_picker = telescope.pickers.new { - previewer = file_previewer -} - -file_picker:find { - prompt = 'Find File', - finder = file_finder, - sorter = file_sorter, -} - |
