fix: Reduce memory leaks (#148)

It is not 100% clear that we've gotten ALL the memory leaks, but it
seems much much much better and doesn't look like it's going to die
immediately or as often anymore :)
This commit is contained in:
TJ DeVries
2020-10-06 21:57:49 -04:00
committed by GitHub
parent caf370cc37
commit d32d4a6e0f
8 changed files with 235 additions and 88 deletions

View File

@@ -1,15 +1,23 @@
require('plenary.reload').reload_module('telescope')
-- require('plenary.reload').reload_module('telescope')
local finders = require('telescope.finders')
local pickers = require('telescope.pickers')
local sorters = require('telescope.sorters')
local previewers = require('telescope.previewers')
local my_list = {'a', 'b', 'c'}
local my_list = {
'lua/telescope/WIP.lua',
'lua/telescope/actions.lua',
'lua/telescope/builtin.lua',
}
pickers.new({
local opts = {}
pickers.new(opts, {
prompt = 'Telescope Builtin',
finder = finders.new_table {
results = my_list,
},
sorter = sorters.get_generic_fuzzy_sorter(),
previewer = previewers.cat.new(opts),
}):find()

View File

@@ -0,0 +1,48 @@
-- local actions = require('telescope.actions')
-- local utils = require('telescope.utils')
require('telescope')
local finders = require('telescope.finders')
local make_entry = require('telescope.make_entry')
local previewers = require('telescope.previewers')
local pickers = require('telescope.pickers')
local sorters = require('telescope.sorters')
local log = require('telescope.log')
local real_opts = setmetatable({}, { __mode = 'v' })
local opts = setmetatable({}, {
__index = function(t, k) log.debug("accessing:", k); return real_opts[k] end,
__newindex = function(t, k, v) log.debug("setting:", k, v); real_opts[k] = v end
})
opts.entry_maker = opts.entry_maker or make_entry.gen_from_file()
if opts.cwd then
opts.cwd = vim.fn.expand(opts.cwd)
end
-- local get_finder_opts = function(opts)
-- local t = {}
-- t.entry_maker = table.pop(opts, 'entry_maker')
-- return t
-- end
-- local finder_opts = get_finder_opts(opts)
-- assert(not opts.entry_maker)
local picker_config = {
prompt = 'Git File',
finder = finders.new_oneshot_job(
{ "git", "ls-files", "-o", "--exclude-standard", "-c" }
, opts
),
-- previewer = previewers.cat.new(opts),
-- sorter = sorters.get_fuzzy_file(opts),
-- sorter = sorters.get_fuzzy_file(),
}
log.debug("Done with config")
local x = pickers.new(picker_config)
x:find()
x = nil