fix: termopen previewer for powershell (#382)
This commit is contained in:
@@ -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 ''
|
||||||
|
|||||||
@@ -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, ' ')
|
||||||
|
|||||||
Reference in New Issue
Block a user