summaryrefslogtreecommitdiff
path: root/scratch/file_finder.lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2021-08-20 11:11:24 -0400
committerGitHub <noreply@github.com>2021-08-20 11:11:24 -0400
commita97af306c4e9c9a6fa7c886c0ffe3079822c5203 (patch)
treef5e2b50a767e93618d0d8fdddb8a964c90633c8a /scratch/file_finder.lua
parentd6d28dbe324de9826a579155076873888169ba0f (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.lua80
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,
-}
-