feat: add some new items and make mappings easier

This commit is contained in:
TJ DeVries
2020-09-02 00:06:03 -04:00
parent 9f906f0392
commit 061307233c
8 changed files with 242 additions and 43 deletions

View File

@@ -2,8 +2,16 @@
A collection of builtin pipelines for telesceope.
Meant for both example and for easy startup.
Any of these functions can just be called directly by doing:
:lua require('telescope.builtin').__name__()
This will use the default configuration options.
Other configuration options still in flux at the moment
--]]
local actions = require('telescope.actions')
local finders = require('telescope.finders')
local previewers = require('telescope.previewers')
local pickers = require('telescope.pickers')
@@ -36,14 +44,11 @@ builtin.git_files = function(opts)
previewer = previewers.cat,
sorter = sorters.get_fuzzy_file(),
}):find()
end
builtin.live_grep = function(opts)
local live_grepper = finders.new {
maximum_results = 1000,
fn_command = function(self, prompt)
fn_command = function(_, prompt)
-- TODO: Make it so that we can start searching on the first character.
if not prompt or prompt == "" then
return nil
@@ -186,7 +191,7 @@ builtin.command_history = function(opts)
local results = {}
for i = 3, #history_list do
local item = history_list[i]
local start, finish = string.find(item, "%d+ +")
local _, finish = string.find(item, "%d+ +")
table.insert(results, string.sub(item, finish + 1))
end
@@ -195,6 +200,15 @@ builtin.command_history = function(opts)
finder = finders.new_table(results),
sorter = sorters.get_norcalli_sorter(),
attach_mappings = function(map)
map('i', '<CR>', actions.set_command_line)
-- TODO: Find a way to insert the text... it seems hard.
-- map('i', '<C-i>', actions.insert_value, { expr = true })
return true
end,
-- TODO: Adapt `help` to this.
-- previewer = previewers.cat,
}):find()
@@ -230,4 +244,26 @@ builtin.builtin = function(opts)
}):find()
end
builtin.fd = function(opts)
local fd_string = nil
if 1 == vim.fn.executable("fd") then
fd_string = "fd"
elseif 1 == vim.fn.executable("fdfind") then
fd_string = "fdfind"
end
if not fd_string then
print("You need to install fd")
return
end
pickers.new(opts, {
prompt = 'Find Files',
finder = finders.new_oneshot_job {fd_string},
previewer = previewers.cat,
sorter = sorters.get_fuzzy_file(),
}):find()
end
return builtin