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 = { [""] = actions.cycle_history_next, [""] = actions.cycle_history_prev, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.close, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, [""] = actions.select_default, [""] = actions.select_horizontal, [""] = actions.select_vertical, [""] = actions.select_tab, [""] = actions.preview_scrolling_up, [""] = actions.preview_scrolling_down, [""] = actions.results_scrolling_up, [""] = actions.results_scrolling_down, [""] = actions.toggle_selection + actions.move_selection_worse, [""] = actions.toggle_selection + actions.move_selection_better, [""] = actions.send_to_qflist + actions.open_qflist, [""] = actions.send_selected_to_qflist + actions.open_qflist, [""] = actions.complete_tag, [""] = actions.which_key, -- keys from pressing }, n = { [""] = actions.close, [""] = actions.select_default, [""] = actions.select_horizontal, [""] = actions.select_vertical, [""] = actions.select_tab, [""] = actions.toggle_selection + actions.move_selection_worse, [""] = actions.toggle_selection + actions.move_selection_better, [""] = actions.send_to_qflist + actions.open_qflist, [""] = 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, [""] = actions.move_selection_next, [""] = actions.move_selection_previous, ["gg"] = actions.move_to_top, ["G"] = actions.move_to_bottom, [""] = actions.preview_scrolling_up, [""] = actions.preview_scrolling_down, [""] = actions.results_scrolling_up, [""] = 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"] = { [""] = 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", "", 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;