nvim/lua/config/plugins/telescope.lua

113 lines
2.6 KiB
Lua
Raw Normal View History

2022-12-31 17:43:31 +01:00
local function project_files()
local opts = {}
if vim.loop.fs_stat '.git' then
opts.show_untracked = true
require('telescope.builtin').git_files(opts)
else
local client = vim.lsp.get_active_clients()[1]
if client then
opts.cwd = client.config.root_dir
end
-- require('telescope.builtin').find_files(opts)
require('telescope').extensions.file_browser.file_browser()
end
end
local M = {
'nvim-telescope/telescope.nvim',
cmd = { 'Telescope' },
keys = {
{ '<leader><space>', project_files, desc = 'Find File' },
},
dependencies = {
'nvim-telescope/telescope-file-browser.nvim',
},
}
function M.config()
local telescope = require 'telescope'
local actions = require 'telescope.actions'
local previewers = require 'telescope.previewers'
local Job = require 'plenary.job'
local new_maker = function(filepath, bufnr, opts)
filepath = vim.fn.expand(filepath)
Job:new({
command = 'file',
args = { '--mime-type', '-b', filepath },
on_exit = function(j)
local mime_type = vim.split(j:result()[1], '/')[1]
if mime_type == 'text' then
previewers.buffer_previewer_maker(filepath, bufnr, opts)
else
-- maybe we want to write something to the buffer here
vim.schedule(function()
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, { 'BINARY' })
end)
end
end,
}):sync()
end
-- local fb_actions = require "telescope".extensions.file_browser.actions
telescope.setup {
extensions = {
file_browser = {
theme = 'ivy',
-- disables netrw and use telescope-file-browser in its place
hijack_netrw = true,
mappings = {
['i'] = {
},
['n'] = {
-- your custom normal mode mappings
},
},
},
},
pickers = {
find_files = {
theme = 'dropdown',
},
live_grep = {
theme = 'dropdown',
},
buffers = {
theme = 'dropdown',
},
},
defaults = {
layout_config = {
vertical = { width = 0.5 },
-- other layout configuration here
},
buffer_previewer_maker = new_maker,
prompt_prefix = '',
selection_caret = '',
path_display = { 'smart' },
file_ignore_patterns = { '.git/', 'node_modules' },
mappings = {
i = {
['<Down>'] = actions.move_selection_next,
['<Up>'] = actions.move_selection_previous,
['<C-n>'] = actions.cycle_history_next,
['<C-e>'] = actions.cycle_history_prev,
['<esc>'] = actions.close,
},
},
vimgrep_arguments = {
'rg',
'--color=never',
'--no-heading',
'--with-filename',
'--line-number',
'--column',
'--smart-case',
'--trim', -- add this value
},
},
}
end
return M