| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- return {
- {
- "nvim-telescope/telescope.nvim",
- enabled = true,
- lazy = false,
- cmd = "Telescope",
- dependencies = {
- "nvim-lua/plenary.nvim", "nvim-telescope/telescope-ui-select.nvim"
- },
- config = function(_, _)
- local builtin = require("telescope.builtin")
- local actions = require("telescope.actions")
- local conf = require("telescope.config").values
- local finders = require("telescope.finders")
- local pickers = require("telescope.pickers")
- local themes = require("telescope.themes")
- local action_state = require("telescope.actions.state")
- require("telescope").setup({
- extensions = {
- ["ui-select"] = { require("telescope.themes").get_dropdown() }
- },
- defaults = {
- ["borderchars"] = {
- "-", "¦", "-", "¦", "⌌", "⌍", "⌏", "⌎"
- },
- layout_strategy = "horizontal",
- layout_config = {
- horizontal = { width = { padding = 0 }, height = 0.99 }
- },
- cache_picker = {
- num_pickers = 100,
- limit_entries = 100,
- ignore_empty_prompt = true
- }
- },
- pickers = {
- live_grep = {
- additional_args = function(_)
- return { "--hidden", "--glob=!**/.git/*" }
- end
- }
- }
- })
- vim.keymap.set("n", "sf", function()
- require("telescope").extensions.file_browser.file_browser({
- select_buffer = true,
- grouped = true,
- no_ignore = true,
- hidden = true,
- respect_gitignore = false,
- path = vim.fn.expand("%:p:h")
- })
- end, {})
- vim.keymap.set("n", "ss", builtin.resume)
- vim.keymap.set("n", "sS", builtin.pickers)
- vim.keymap.set("n", "sa", builtin.find_files)
- vim.keymap.set("n", "sg", builtin.git_files)
- vim.keymap.set("n", "si", builtin.live_grep)
- vim.keymap.set("n", "sI", function()
- local async = require 'plenary.async'
- local sender, receiver = async.control.channel.mpsc()
- local results = {}
- async.run(function()
- local result = vim.fn.system(
- "fd -t f | rev | cut -d/ -f1 -s | cut -d. -f1 -s | rev | tr '[:upper:]' '[:lower:]' | sort | uniq | xargs -I{} -n 1 printf '*.{}\n!*.{}\n'")
- sender.send(result)
- end)
- async.run(function()
- local result = vim.fn.system(
- "fd -t d | xargs -n 1 -I{} printf '{}*\n!{}*\n'")
- sender.send(result)
- end)
- async.run(function()
- local result = vim.fn.system(
- "fd -t d | rev | cut -d/ -f2 -s | rev | sort | uniq | xargs -n 1 -I{} printf '**/{}/*\n!**/{}/*\n'")
- sender.send(result)
- end)
- for _ = 1, 3 do
- local value = receiver.recv()
- if value ~= nil then
- results = vim.list_extend(results,
- vim.split(value, "\n"))
- end
- end
- pickers.new(themes.get_dropdown({}),
- {
- finder = finders.new_table({
- results = results
- }),
- sorter = conf.generic_sorter(),
- attach_mappings = function(prompt_bufnr, _)
- actions.select_default:replace(function()
- actions.close(prompt_bufnr)
- local selection = action_state
- .get_selected_entry()
- builtin.live_grep({ glob_pattern = selection })
- end)
- return true
- end,
- }):find()
- end)
- vim.keymap.set("n", "sb", builtin.buffers)
- vim.keymap.set("n", "sj", builtin.jumplist)
- vim.keymap.set("n", "sw", builtin.grep_string)
- vim.keymap.set("n", "sld", builtin.lsp_definitions)
- vim.keymap.set("n", "slt", builtin.lsp_type_definitions)
- vim.keymap.set("n", "slr", builtin.lsp_references)
- vim.keymap.set("n", "sli", builtin.lsp_implementations)
- vim.keymap.set("n", "sls", builtin.lsp_dynamic_workspace_symbols)
- require("telescope").load_extension("ui-select")
- require("telescope").load_extension("file_browser")
- end
- }, {
- "nvim-telescope/telescope-file-browser.nvim",
- dependencies = { "nvim-telescope/telescope.nvim" },
- enabled = true,
- lazy = false,
- config = function(_, _)
- require("telescope").setup({
- extensions = {
- file_browser = {
- respect_gitignore = false,
- hidden = { file_browser = true, folder_browser = true },
- hijack_netrw = true,
- display_stat = { date = false, size = true, mode = false },
- mappings = {}
- }
- }
- })
- require("telescope").load_extension("file_browser")
- end
- }
- }
|