Update 15.04.23
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
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 = {
|
||||
["<esc>"] = actions.close,
|
||||
["<C-u>"] = false
|
||||
},
|
||||
},
|
||||
theme = "ivy",
|
||||
},
|
||||
pickers = {
|
||||
git_branches = {
|
||||
mappings = {
|
||||
i = {
|
||||
["<C-b>"] = 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
|
||||
Reference in New Issue
Block a user