summaryrefslogtreecommitdiff
path: root/lua/telescope/builtin/init.lua
diff options
context:
space:
mode:
authorSimon Hauser <Simon-Hauser@outlook.de>2020-11-16 21:48:45 +0100
committerGitHub <noreply@github.com>2020-11-16 21:48:45 +0100
commit749c86557e3eb8d89bc93098d5a5ca089610278f (patch)
tree292f179171f95a8aef58b89d63df93210f8c8cbd /lua/telescope/builtin/init.lua
parent57a7769845fba5df8beef692695363933c0c6ae0 (diff)
Update attach_mappings to use new actions api (#249)
Diffstat (limited to 'lua/telescope/builtin/init.lua')
-rw-r--r--lua/telescope/builtin/init.lua233
1 files changed, 99 insertions, 134 deletions
diff --git a/lua/telescope/builtin/init.lua b/lua/telescope/builtin/init.lua
index 80c1f3f..9653e0c 100644
--- a/lua/telescope/builtin/init.lua
+++ b/lua/telescope/builtin/init.lua
@@ -71,24 +71,20 @@ builtin.commands = function()
end
},
sorter = conf.generic_sorter(),
- attach_mappings = function(prompt_bufnr, map)
- local run_command = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
local val = selection.value
local cmd = string.format([[:%s ]], val.name)
if val.nargs == "0" then
- vim.cmd(cmd)
+ vim.cmd(cmd)
else
- vim.cmd [[stopinsert]]
- vim.fn.feedkeys(cmd)
+ vim.cmd [[stopinsert]]
+ vim.fn.feedkeys(cmd)
end
-
- end
-
- map('i', '<CR>', run_command)
- map('n', '<CR>', run_command)
+ end)
return true
end
@@ -225,9 +221,9 @@ builtin.lsp_code_actions = function(opts)
}
end
},
- attach_mappings = function(prompt_bufnr, map)
- local execute = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
local val = selection.value
@@ -241,10 +237,7 @@ builtin.lsp_code_actions = function(opts)
else
vim.lsp.buf.execute_command(val)
end
- end
-
- map('i', '<CR>', execute)
- map('n', '<CR>', execute)
+ end)
return true
end,
@@ -398,63 +391,59 @@ builtin.vim_options = function(opts)
local vim_opts = loadfile(utils.data_directory() .. path.separator .. 'options' .. path.separator .. 'options.lua')().options
pickers.new(opts, {
- prompt = 'options',
- finder = finders.new_table {
- results = vim_opts,
- entry_maker = make_entry.gen_from_vimoptions(opts),
- },
- -- TODO: previewer for Vim options
- -- previewer = previewers.help.new(opts),
- sorter = sorters.get_fzy_sorter(),
- attach_mappings = function(prompt_bufnr, map)
- local edit_option = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
- local esc = ""
-
-
- if vim.fn.mode() == "i" then
- -- TODO: don't make this local
- esc = vim.api.nvim_replace_termcodes("<esc>", true, false, true)
- end
+ prompt = 'options',
+ finder = finders.new_table {
+ results = vim_opts,
+ entry_maker = make_entry.gen_from_vimoptions(opts),
+ },
+ -- TODO: previewer for Vim options
+ -- previewer = previewers.help.new(opts),
+ sorter = sorters.get_fzy_sorter(),
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
+ local esc = ""
- -- TODO: Make this actually work.
-
- -- actions.close(prompt_bufnr)
- -- vim.api.nvim_win_set_var(vim.fn.nvim_get_current_win(), "telescope", 1)
- -- print(prompt_bufnr)
- -- print(vim.fn.bufnr())
- -- vim.cmd([[ autocmd BufEnter <buffer> ++nested ++once startinsert!]])
- -- print(vim.fn.winheight(0))
-
- -- local prompt_winnr = vim.fn.getbufinfo(prompt_bufnr)[1].windows[1]
- -- print(prompt_winnr)
-
- -- local float_opts = {}
- -- float_opts.relative = "editor"
- -- float_opts.anchor = "sw"
- -- float_opts.focusable = false
- -- float_opts.style = "minimal"
- -- float_opts.row = vim.api.nvim_get_option("lines") - 2 -- TODO: include `cmdheight` and `laststatus` in this calculation
- -- float_opts.col = 2
- -- float_opts.height = 10
- -- float_opts.width = string.len(selection.last_set_from)+15
- -- local buf = vim.fn.nvim_create_buf(false, true)
- -- vim.fn.nvim_buf_set_lines(buf, 0, 0, false, {"default value: abcdef", "last set from: " .. selection.last_set_from})
- -- local status_win = vim.fn.nvim_open_win(buf, false, float_opts)
- -- -- vim.api.nvim_win_set_option(status_win, "winblend", 100)
- -- vim.api.nvim_win_set_option(status_win, "winhl", "Normal:PmenuSel")
- -- -- vim.api.nvim_set_current_win(status_win)
- -- vim.cmd[[redraw!]]
- -- vim.cmd("autocmd CmdLineLeave : ++once echom 'beep'")
- vim.api.nvim_feedkeys(string.format("%s:set %s=%s", esc, selection.name, selection.current_value), "m", true)
+ if vim.fn.mode() == "i" then
+ -- TODO: don't make this local
+ esc = vim.api.nvim_replace_termcodes("<esc>", true, false, true)
end
- map('i', '<CR>', edit_option)
- map('n', '<CR>', edit_option)
+ -- TODO: Make this actually work.
+
+ -- actions.close(prompt_bufnr)
+ -- vim.api.nvim_win_set_var(vim.fn.nvim_get_current_win(), "telescope", 1)
+ -- print(prompt_bufnr)
+ -- print(vim.fn.bufnr())
+ -- vim.cmd([[ autocmd BufEnter <buffer> ++nested ++once startinsert!]])
+ -- print(vim.fn.winheight(0))
+
+ -- local prompt_winnr = vim.fn.getbufinfo(prompt_bufnr)[1].windows[1]
+ -- print(prompt_winnr)
+
+ -- local float_opts = {}
+ -- float_opts.relative = "editor"
+ -- float_opts.anchor = "sw"
+ -- float_opts.focusable = false
+ -- float_opts.style = "minimal"
+ -- float_opts.row = vim.api.nvim_get_option("lines") - 2 -- TODO: include `cmdheight` and `laststatus` in this calculation
+ -- float_opts.col = 2
+ -- float_opts.height = 10
+ -- float_opts.width = string.len(selection.last_set_from)+15
+ -- local buf = vim.fn.nvim_create_buf(false, true)
+ -- vim.fn.nvim_buf_set_lines(buf, 0, 0, false, {"default value: abcdef", "last set from: " .. selection.last_set_from})
+ -- local status_win = vim.fn.nvim_open_win(buf, false, float_opts)
+ -- -- vim.api.nvim_win_set_option(status_win, "winblend", 100)
+ -- vim.api.nvim_win_set_option(status_win, "winhl", "Normal:PmenuSel")
+ -- -- vim.api.nvim_set_current_win(status_win)
+ -- vim.cmd[[redraw!]]
+ -- vim.cmd("autocmd CmdLineLeave : ++once echom 'beep'")
+ vim.api.nvim_feedkeys(string.format("%s:set %s=%s", esc, selection.name, selection.current_value), "m", true)
+ end)
- return true
- end
- }):find()
+ return true
+ end
+ }):find()
end
builtin.help_tags = function(opts)
@@ -478,37 +467,18 @@ builtin.help_tags = function(opts)
-- TODO: previewer for Vim help
previewer = previewers.help.new(opts),
sorter = conf.generic_sorter(opts),
- attach_mappings = function(prompt_bufnr, map)
- local open = function(cmd)
- local selection = actions.get_selected_entry(prompt_bufnr)
-
+ attach_mappings = function(prompt_bufnr)
+ actions._goto_file_selection:replace(function(_, cmd)
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
- vim.cmd(cmd .. selection.value)
- end
- local nhelp = function()
- return open("help ")
- end
- local vhelp = function()
- return open("vert bo help ")
- end
- local hhelp = function()
- return open("help ")
- -- Not sure how explictly make horizontal
- end
- local thelp = function()
- return open("tab help ")
- end
- -- Perhaps it would be a good idea to have vsplit,tab,hsplit open
- -- a builtin action that accepts a command to be ran before creating
- -- the split or tab
- map('i', '<CR>', nhelp)
- map('n', '<CR>', nhelp)
- map('i', '<C-v>', vhelp)
- map('n', '<C-v>', vhelp)
- map('i', '<C-x>', hhelp)
- map('n', '<C-x>', hhelp)
- map('i', '<C-t>', thelp)
- map('n', '<C-t>', thelp)
+ if cmd == 'edit' or cmd == 'new' then
+ vim.cmd('help ' .. selection.value)
+ elseif cmd == 'vnew' then
+ vim.cmd('vert bo help ' .. selection.value)
+ elseif cmd == 'tabedit' then
+ vim.cmd('tab help ' .. selection.value)
+ end
+ end)
return true
end
@@ -538,17 +508,14 @@ builtin.reloader = function(opts)
-- previewer = previewers.vim_buffer.new(opts),
sorter = conf.generic_sorter(opts),
- attach_mappings = function(prompt_bufnr, map)
- local reload_package = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
require('plenary.reload').reload_module(selection.value)
print(string.format("[%s] - module reloaded", selection.value))
- end
-
- map('i', '<CR>', reload_package)
- map('n', '<CR>', reload_package)
+ end)
return true
end
@@ -587,8 +554,8 @@ builtin.builtin = function(opts)
},
previewer = previewers.qflist.new(opts),
sorter = conf.generic_sorter(opts),
- attach_mappings = function(_, map)
- map('i', '<CR>', actions.run_builtin)
+ attach_mappings = function(_)
+ actions.goto_file_selection_edit:replace(actions.run_builtin)
return true
end
}):find()
@@ -758,9 +725,9 @@ builtin.planets = function(opts)
},
previewer = previewers.cat.new(opts),
sorter = conf.generic_sorter(opts),
- attach_mappings = function(prompt_bufnr, map)
- map('i', '<CR>', function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
print("Enjoy astronomy! You viewed:", selection.display)
@@ -795,12 +762,12 @@ builtin.current_buffer_fuzzy_find = function(opts)
end
},
sorter = sorters.get_generic_fuzzy_sorter(),
- attach_mappings = function(prompt_bufnr)
+ attach_mappings = function()
actions._goto_file_selection:enhance {
- post = vim.schedule_wrap(function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ post = function()
+ local selection = actions.get_selected_entry()
vim.api.nvim_win_set_cursor(0, {selection.lnum, 0})
- end),
+ end,
}
return true
@@ -828,17 +795,19 @@ builtin.man_pages = function(opts)
},
previewer = previewers.man.new(opts),
sorter = sorters.get_generic_fuzzy_sorter(),
- attach_mappings = function(prompt_bufnr, map)
- local view_manpage = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions._goto_file_selection:replace(function(_, cmd)
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
- print(vim.inspect(selection.value))
- vim.cmd("Man " .. selection.value)
- end
-
- map('i', '<CR>', view_manpage)
- map('n', '<CR>', view_manpage)
+ if cmd == 'edit' or cmd == 'new' then
+ vim.cmd('Man ' .. selection.value)
+ elseif cmd == 'vnew' then
+ vim.cmd('vert bo Man ' .. selection.value)
+ elseif cmd == 'tabedit' then
+ vim.cmd('tab Man ' .. selection.value)
+ end
+ end)
return true
end
@@ -857,17 +826,13 @@ builtin.colorscheme = function(opts)
},
-- TODO: better preview?
sorter = sorters.get_generic_fuzzy_sorter(),
- attach_mappings = function(prompt_bufnr, map)
- local change_colorscheme = function()
- local selection = actions.get_selected_entry(prompt_bufnr)
+ attach_mappings = function(prompt_bufnr)
+ actions.goto_file_selection_edit:replace(function()
+ local selection = actions.get_selected_entry()
actions.close(prompt_bufnr)
- print(vim.inspect(selection.value))
vim.cmd("colorscheme " .. selection.value)
- end
-
- map('i', '<CR>', change_colorscheme)
- map('n', '<CR>', change_colorscheme)
+ end)
return true
end