added git_status

main
bhagwan 3 years ago
parent 1257eadb7c
commit fd390cdcea

@ -135,6 +135,7 @@ nnoremap <c-P> <cmd>lua require('fzf-lua').files()<CR>
|`colorschemes`|color schemes|
|`builtin`|fzf-lua builtin methods|
|`git_files`|`git ls-files`|
|`git_status`|`git status`|
|`git_commits`|git commit log (project)|
|`git_bcommits`|git commit log (buffer)|
|`git_branch`|git branches|
@ -223,6 +224,10 @@ require'fzf-lua'.setup {
cmd = "head",
args = nil,
},
git_diff = {
cmd = "git diff",
args = "--color",
},
},
-- provider setup
files = {
@ -249,6 +254,14 @@ require'fzf-lua'.setup {
file_icons = true, -- show file icons?
color_icons = true, -- colorize file|git icons
},
status = {
prompt = 'GitStatus ',
cmd = "git status -s",
previewer = "git_diff",
file_icons = true,
git_icons = true,
color_icons = true,
},
commits = {
prompt = 'Commits ',
cmd = "git log --pretty=oneline --abbrev-commit --color",

@ -94,6 +94,11 @@ M.globals = {
args = nil,
_new = function() return require 'fzf-lua.previewer'.head end,
},
git_diff = {
cmd = "git diff",
args = "--color",
_new = function() return require 'fzf-lua.previewer'.cmd_async end,
},
builtin = {
treesitter = true,
_new = function() return require 'fzf-lua.previewer'.builtin end,
@ -131,6 +136,15 @@ M.globals.git = {
git_icons = true,
actions = M.globals.files.actions,
},
status = {
prompt = 'GitStatus> ',
cmd = "git status -s",
previewer = "git_diff",
file_icons = true and M._has_devicons,
color_icons = true,
git_icons = true,
actions = M.globals.files.actions,
},
commits = {
prompt = 'Commits> ',
cmd = "git log --pretty=oneline --abbrev-commit --color",
@ -356,8 +370,8 @@ M.winopts = function(opts)
}
end
M.preview_window = function()
local o = M.globals
M.preview_window = function(opts)
local o = vim.tbl_deep_extend("keep", opts, M.globals)
local preview_veritcal = string.format('%s:%s:%s:%s',
o.preview_opts, o.preview_border, o.preview_wrap, o.preview_vertical)
local preview_horizontal = string.format('%s:%s:%s:%s',

@ -30,7 +30,7 @@ M.build_fzf_cli = function(opts, debug_print)
utils._if(opts.fzf_binds, opts.fzf_binds,
vim.fn.shellescape(table.concat(config.globals.fzf_binds, ','))),
vim.fn.shellescape(opts.prompt),
utils._if(opts.preview_window, opts.preview_window, config.preview_window()),
utils._if(opts.preview_window, opts.preview_window, config.preview_window(opts)),
utils._if(#opts.preview_offset>0, ":"..opts.preview_offset, ''),
utils._if(opts.preview and #opts.preview>0, opts.preview, "''"),
-- HACK: support skim (rust version of fzf)
@ -167,10 +167,12 @@ M.fzf_files = function(opts)
end
local preview_opts = config.globals.previewers[opts.previewer]
if preview_opts then
local preview = preview_opts._new()(preview_opts, opts)
opts.preview = preview:cmdline()
if not opts.preview then
local preview_opts = config.globals.previewers[opts.previewer]
if preview_opts then
local preview = preview_opts._new()(preview_opts, opts)
opts.preview = preview:cmdline()
end
end
local selected = fzf.fzf(opts.fzf_fn,

@ -56,6 +56,7 @@ M.grep_cWORD = require'fzf-lua.providers.grep'.grep_cWORD
M.grep_visual = require'fzf-lua.providers.grep'.grep_visual
M.grep_curbuf = require'fzf-lua.providers.grep'.grep_curbuf
M.git_files = require'fzf-lua.providers.git'.files
M.git_status = require'fzf-lua.providers.git'.status
M.git_commits = require'fzf-lua.providers.git'.commits
M.git_bcommits = require'fzf-lua.providers.git'.bcommits
M.git_branches = require'fzf-lua.providers.git'.branches

@ -30,6 +30,19 @@ M.files = function(opts)
return core.fzf_files(opts)
end
M.status = function(opts)
if not git_status() then return end
opts = config.normalize_opts(opts, config.globals.git.status)
if opts.preview then opts.preview = vim.fn.shellescape(opts.preview) end
opts.fzf_fn = fzf_helpers.cmd_line_transformer(opts.cmd,
function(x)
-- greedy match anything after last space
x = x:match("[^ ]*$")
return core.make_entry_file(opts, x)
end)
return core.fzf_files(opts)
end
local function git_cmd(opts)
if not git_status() then return end
coroutine.wrap(function ()

Loading…
Cancel
Save