fix: all git builtin respect cwd now (#517)

This commit is contained in:
Simon Hauser
2021-02-09 18:25:57 +01:00
committed by GitHub
parent 993e383dd5
commit 3a7fa41857
7 changed files with 41 additions and 37 deletions

View File

@@ -393,7 +393,7 @@ previewers.man = defaulter(function(opts)
}
end)
previewers.git_branch_log = defaulter(function(_)
previewers.git_branch_log = defaulter(function(opts)
local highlight_buffer = function(bufnr, content)
for i = 1, #content do
local line = content[i]
@@ -418,7 +418,7 @@ previewers.git_branch_log = defaulter(function(_)
end
end
local remotes = utils.get_os_command_output{ 'git', 'remote' }
local remotes = utils.get_os_command_output({ 'git', 'remote' }, opts.cwd)
return previewers.new_buffer_previewer {
get_buffer_by_name = function(_, entry)
return entry.value
@@ -450,13 +450,14 @@ previewers.git_branch_log = defaulter(function(_)
putils.job_maker(gen_cmd(entry.value), self.state.bufnr, {
value = entry.value,
bufname = self.state.bufname,
cwd = opts.cwd,
callback = handle_results
})
end
}
end, {})
previewers.git_commit_diff = defaulter(function(_)
previewers.git_commit_diff = defaulter(function(opts)
return previewers.new_buffer_previewer {
get_buffer_by_name = function(_, entry)
return entry.value
@@ -465,21 +466,22 @@ previewers.git_commit_diff = defaulter(function(_)
define_preview = function(self, entry, status)
putils.job_maker({ 'git', '-P', 'diff', entry.value .. '^!' }, self.state.bufnr, {
value = entry.value,
bufname = self.state.bufname
bufname = self.state.bufname,
cwd = opts.cwd
})
putils.regex_highlighter(self.state.bufnr, 'diff')
end
}
end, {})
previewers.git_file_diff = defaulter(function(_)
previewers.git_file_diff = defaulter(function(opts)
return previewers.new_buffer_previewer {
get_buffer_by_name = function(_, entry)
return entry.value
end,
define_preview = function(self, entry, status)
if entry.status and entry.status == '??' then
if entry.status and (entry.status == '??' or entry.status == 'A ') then
local p = from_entry.path(entry, true)
if p == nil or p == '' then return end
conf.buffer_previewer_maker(p, self.state.bufnr, {
@@ -488,7 +490,8 @@ previewers.git_file_diff = defaulter(function(_)
else
putils.job_maker({ 'git', '-P', 'diff', entry.value }, self.state.bufnr, {
value = entry.value,
bufname = self.state.bufname
bufname = self.state.bufname,
cwd = opts.cwd
})
putils.regex_highlighter(self.state.bufnr, 'diff')
end

View File

@@ -34,6 +34,7 @@ utils.job_maker = function(cmd, bufnr, opts)
command = command,
args = cmd,
env = opts.env,
cwd = opts.cwd,
on_exit = vim.schedule_wrap(function(j)
if not vim.api.nvim_buf_is_valid(bufnr) then return end
if opts.mode == "append" then