aboutsummaryrefslogtreecommitdiff
path: root/lua/plugins/telescope.lua
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2022-10-24 00:11:06 +0200
committersrdusr <trevorgray@srdusr.com>2022-10-24 00:11:06 +0200
commitdfe212fdf0bf414493fccb1bfbcef6f30c6cab73 (patch)
treeae4a60ae6b189ff485e071b432160d650c0aa9fe /lua/plugins/telescope.lua
parent6cdd3b4b282d79130dc6f2b346cb509ddbb6fa48 (diff)
downloaddotfiles-dfe212fdf0bf414493fccb1bfbcef6f30c6cab73.tar.gz
dotfiles-dfe212fdf0bf414493fccb1bfbcef6f30c6cab73.zip
Resort files into different directories
Diffstat (limited to 'lua/plugins/telescope.lua')
-rw-r--r--lua/plugins/telescope.lua223
1 files changed, 223 insertions, 0 deletions
diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua
new file mode 100644
index 0000000..db065d7
--- /dev/null
+++ b/lua/plugins/telescope.lua
@@ -0,0 +1,223 @@
+local status_ok, telescope = pcall(require, "telescope")
+if not status_ok then
+ return
+end
+local actions = require("telescope.actions")
+local builtin = require("telescope.builtin")
+
+local function telescope_buffer_dir()
+ return vim.fn.expand("%:p:h")
+end
+
+telescope.load_extension("fzf")
+telescope.load_extension("file_browser")
+require("telescope").load_extension("file_browser")
+local fb_actions = require("telescope").extensions.file_browser.actions
+--telescope.load_extension('media_files')
+
+telescope.setup({
+ defaults = {
+ --
+ prompt_prefix = " ",
+ selection_caret = " ",
+ path_display = { "smart" },
+ --
+ mappings = {
+ i = {
+ ["<C-n>"] = actions.cycle_history_next,
+ ["<C-p>"] = actions.cycle_history_prev,
+
+ ["<C-j>"] = actions.move_selection_next,
+ ["<C-k>"] = actions.move_selection_previous,
+
+ ["<C-c>"] = actions.close,
+
+ ["<Down>"] = actions.move_selection_next,
+ ["<Up>"] = actions.move_selection_previous,
+
+ ["<CR>"] = actions.select_default,
+ ["<C-x>"] = actions.select_horizontal,
+ ["<C-y>"] = actions.select_vertical,
+ ["<C-t>"] = actions.select_tab,
+
+ ["<C-u>"] = actions.preview_scrolling_up,
+ ["<C-d>"] = actions.preview_scrolling_down,
+
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
+ ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
+ ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
+ ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
+ ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
+ ["<C-l>"] = actions.complete_tag,
+ ["<C-_>"] = actions.which_key, -- keys from pressing <C-/>
+ },
+
+ n = {
+ ["<esc>"] = actions.close,
+ ["<CR>"] = actions.select_default,
+ ["<C-x>"] = actions.select_horizontal,
+ ["<C-v>"] = actions.select_vertical,
+ ["<C-t>"] = actions.select_tab,
+
+ ["<Tab>"] = actions.toggle_selection + actions.move_selection_worse,
+ ["<S-Tab>"] = actions.toggle_selection + actions.move_selection_better,
+ ["<C-q>"] = actions.send_to_qflist + actions.open_qflist,
+ ["<M-q>"] = actions.send_selected_to_qflist + actions.open_qflist,
+
+ ["j"] = actions.move_selection_next,
+ ["k"] = actions.move_selection_previous,
+ ["H"] = actions.move_to_top,
+ ["M"] = actions.move_to_middle,
+ ["L"] = actions.move_to_bottom,
+
+ ["<Down>"] = actions.move_selection_next,
+ ["<Up>"] = actions.move_selection_previous,
+ ["gg"] = actions.move_to_top,
+ ["G"] = actions.move_to_bottom,
+
+ ["<C-u>"] = actions.preview_scrolling_up,
+ ["<C-d>"] = actions.preview_scrolling_down,
+
+ ["<PageUp>"] = actions.results_scrolling_up,
+ ["<PageDown>"] = actions.results_scrolling_down,
+
+ ["?"] = actions.which_key,
+ ["cd"] = function(prompt_bufnr)
+ local selection = require("telescope.actions.state").get_selected_entry()
+ local dir = vim.fn.fnamemodify(selection.path, ":p:h")
+ require("telescope.actions").close(prompt_bufnr)
+ -- Depending on what you want put `cd`, `lcd`, `tcd`
+ vim.cmd(string.format("silent lcd %s", dir))
+ end,
+ },
+ },
+ },
+ pickers = {
+ -- Default configuration for builtin pickers goes here:
+ -- picker_name = {
+ -- picker_config_key = value,
+ -- ...
+ -- }
+ -- Now the picker_config_key will be applied every time you call this
+ -- builtin picker
+ },
+ extensions = {
+ file_browser = {
+ theme = "dropdown",
+ -- disables netrw and use telescope-file-browser in its place
+ hijack_netrw = true,
+ mappings = {
+ -- your custom insert mode mappings
+ ["i"] = {
+ ["<C-w>"] = function()
+ vim.cmd("normal vbd")
+ end,
+ },
+ ["n"] = {
+ -- your custom normal mode mappings
+ ["N"] = fb_actions.create,
+ ["h"] = fb_actions.goto_parent_dir,
+ ["/"] = function()
+ vim.cmd("startinsert")
+ end,
+ },
+ },
+ },
+
+ media_files = {
+ -- filetypes whitelist
+ -- defaults to {"png", "jpg", "mp4", "webm", "pdf"}
+ filetypes = { "png", "webp", "jpg", "jpeg" },
+ find_cmd = "rg", -- find command (defaults to `fd`)
+ },
+ -- Your extension configuration goes here:
+ -- extension_name = {
+ -- extension_config_key = value,
+ -- }
+ -- please take a look at the readme of the extension you want to configure
+ },
+})
+
+telescope.load_extension("file_browser")
+
+--vim.keymap.set("n", ";f", function()
+-- builtin.find_files({
+-- no_ignore = false,
+-- hidden = true,
+-- })
+--end)
+vim.keymap.set("n", ";r", function()
+ builtin.live_grep()
+end)
+vim.keymap.set("n", "\\\\", function()
+ builtin.buffers()
+end)
+vim.keymap.set("n", ";t", function()
+ builtin.help_tags()
+end)
+vim.keymap.set("n", ";;", function()
+ builtin.resume()
+end)
+vim.keymap.set("n", ";e", function()
+ builtin.diagnostics()
+end)
+--vim.keymap.set("n", "sf", function()
+-- telescope.extensions.file_browser.file_browser({
+-- path = "%:p:h",
+-- cwd = telescope_buffer_dir(),
+-- respect_gitignore = false,
+-- hidden = true,
+-- grouped = true,
+-- previewer = false,
+-- initial_mode = "normal",
+-- layout_config = { height = 40 },
+-- })
+--end)
+
+local M = {}
+
+function M.reload()
+ local function get_module_name(s)
+ local module_name;
+
+ module_name = s:gsub("%.lua", "")
+ module_name = module_name:gsub("%/", ".")
+ module_name = module_name:gsub("%.init", "")
+
+ return module_name
+ end
+
+ local prompt_title = "~ neovim modules ~"
+
+ -- sets the path to the lua folder
+ local path = "~/.config/nvim/lua"
+
+ local opts = {
+ prompt_title = prompt_title,
+ cwd = path,
+
+ attach_mappings = function(_, map)
+ -- Adds a new map to ctrl+e.
+ map("i", "<c-e>", function(_)
+ -- these two a very self-explanatory
+ local entry = require("telescope.actions.state").get_selected_entry()
+ local name = get_module_name(entry.value)
+
+ -- call the helper method to reload the module
+ -- and give some feedback
+ R(name)
+ P(name .. " RELOADED!!!")
+ end)
+
+ return true
+ end
+ }
+
+ -- call the builtin method to list files
+ require('telescope.builtin').find_files(opts)
+end
+
+return M;
+