local actions = require("telescope.actions") local action_state = require "telescope.actions.state" local interactive_rebase = function(prompt_bufnr) local selection = action_state.get_selected_entry() -- Use vim-fugitive for the rebase vim.cmd('Git rebase -i ' .. selection.name) end require("telescope").setup{ extensions = { coc = { theme = 'ivy', prefer_locations = true, -- always use Telescope locations to preview definitions/declarations/implementations etc } }, defaults = { mappings = { i = { [""] = actions.close, [""] = false, }, }, theme = "ivy", }, pickers = { git_branches = { mappings = { i = { [""] = interactive_rebase, }, }, }, }, } -- Implement delta as previewer for diffs local previewers = require('telescope.previewers') local builtin = require('telescope.builtin') local conf = require('telescope.config') local E = {} local delta = previewers.new_termopen_previewer { get_command = function(entry) -- this is for status -- You can get the AM things in entry.status. So we are displaying file if entry.status == '??' or 'A ' -- just do an if and return a different command if entry.status == '??' or 'A ' then return { 'git', '-c', 'core.pager=delta', '-c', 'delta.side-by-side=false', 'diff', entry.value } end -- note we can't use pipes -- this command is for git_commits and git_bcommits return { 'git', '-c', 'core.pager=delta', '-c', 'delta.side-by-side=false', 'diff', entry.value .. '^!' } end } E.my_git_commits = function(opts) opts = opts or {} opts.previewer = delta builtin.git_commits(opts) end E.my_git_bcommits = function(opts) opts = opts or {} opts.previewer = delta builtin.git_bcommits(opts) end E.my_git_status = function(opts) opts = opts or {} opts.previewer = delta builtin.git_status(opts) end E.my_git_branches = function(opts) opts = opts or {} opts.previewer = delta builtin.git_branches(opts) end E.project_files = function() local opts = {} -- define here if you want to define something vim.fn.system('git rev-parse --is-inside-work-tree') if vim.v.shell_error == 0 then require"telescope.builtin".git_files(opts) else require"telescope.builtin".find_files(opts) end end return E