fix: termopen previewer for powershell (#382)

This commit is contained in:
Simon Hauser
2021-01-03 20:27:23 +01:00
committed by GitHub
parent 88ebcaab10
commit 4691863f43
2 changed files with 7 additions and 6 deletions

View File

@@ -532,7 +532,7 @@ function make_entry.gen_from_treesitter(opts)
local make_display = function(entry) local make_display = function(entry)
local msg = vim.api.nvim_buf_get_lines( local msg = vim.api.nvim_buf_get_lines(
bufnr, bufnr,
entry.lnum - 1, entry.lnum,
entry.lnum, entry.lnum,
false false
)[1] or '' )[1] or ''

View File

@@ -15,12 +15,12 @@ local previewers = {}
-- TODO: Should play with these some more, ty @clason -- TODO: Should play with these some more, ty @clason
local bat_options = {"--style=plain", "--color=always", "--paging=always"} local bat_options = {"--style=plain", "--color=always", "--paging=always"}
local has_less = (vim.fn.executable('less') == 1) and conf.use_less local has_less = (vim.fn.executable('less') == 1) and conf.use_less
local termopen_env = vim.tbl_extend("force", { ['GIT_PAGER'] = (has_less and 'less' or '') }, conf.set_env)
-- TODO(conni2461): Workaround for neovim/neovim#11751. Add only quotes when using else branch. -- TODO(conni2461): Workaround for neovim/neovim#11751. Add only quotes when using else branch.
local valuate_shell = function() local valuate_shell = function()
local shell = vim.o.shell local shell = vim.o.shell
if string.find(shell, 'powershell.exe') or string.find(shell, 'cmd.exe') then if string.find(shell, 'powershell.exe') or string.find(shell, 'cmd.exe') or
string.find(shell, 'powershell') or string.find(shell, 'pwsh') then
return '' return ''
else else
return "'" return "'"
@@ -177,19 +177,20 @@ previewers.new_termopen_previewer = function(opts)
local term_opts = { local term_opts = {
cwd = opts.cwd or vim.fn.getcwd(), cwd = opts.cwd or vim.fn.getcwd(),
env = termopen_env env = conf.set_env
} }
-- TODO(conni2461): Workaround for neovim/neovim#11751. -- TODO(conni2461): Workaround for neovim/neovim#11751.
local get_cmd = function(st) local get_cmd = function(st)
local shell = vim.o.shell local shell = vim.o.shell
if string.find(shell, 'powershell.exe') or string.find(shell, 'cmd.exe') then if string.find(shell, 'powershell.exe') or string.find(shell, 'cmd.exe') or
string.find(shell, 'powershell') or string.find(shell, 'pwsh') then
return opts.get_command(entry, st) return opts.get_command(entry, st)
else else
local env = {} local env = {}
local cmd = opts.get_command(entry, st) local cmd = opts.get_command(entry, st)
if not cmd then return end if not cmd then return end
for k, v in pairs(termopen_env) do for k, v in pairs(conf.set_env) do
table.insert(env, k .. '=' .. v) table.insert(env, k .. '=' .. v)
end end
return table.concat(env, ' ') .. ' ' .. table.concat(cmd, ' ') return table.concat(env, ' ') .. ' ' .. table.concat(cmd, ' ')