92 lines
2.1 KiB
Lua
92 lines
2.1 KiB
Lua
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)
|
|
end
|
|
end
|
|
|
|
local M = {
|
|
'nvim-telescope/telescope.nvim',
|
|
cmd = { 'Telescope' },
|
|
}
|
|
|
|
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 {
|
|
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
|