mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
56 lines
1.5 KiB
Lua
56 lines
1.5 KiB
Lua
local M = {}
|
|
|
|
-- Returns true if `cmd` exits with success, else false.
|
|
local function cmd_ok(cmd)
|
|
vim.fn.system(cmd)
|
|
return vim.v.shell_error == 0
|
|
end
|
|
|
|
local function executable(exe)
|
|
return vim.fn.executable(exe) == 1
|
|
end
|
|
|
|
local function is_blank(s)
|
|
return s:find('^%s*$') ~= nil
|
|
end
|
|
|
|
local function clipboard()
|
|
vim.health.report_start('Clipboard (optional)')
|
|
|
|
if
|
|
os.getenv('TMUX')
|
|
and executable('tmux')
|
|
and executable('pbpaste')
|
|
and not cmd_ok('pbpaste')
|
|
then
|
|
local tmux_version = string.match(vim.fn.system('tmux -V'), '%d+%.%d+')
|
|
local advice = {
|
|
'Install tmux 2.6+. https://superuser.com/q/231130',
|
|
'or use tmux with reattach-to-user-namespace. https://superuser.com/a/413233',
|
|
}
|
|
vim.health.report_error('pbcopy does not work with tmux version: ' .. tmux_version, advice)
|
|
end
|
|
|
|
local clipboard_tool = vim.fn['provider#clipboard#Executable']()
|
|
if vim.g.clipboard and is_blank(clipboard_tool) then
|
|
local error_message = vim.fn['provider#clipboard#Error']()
|
|
vim.health.report_error(
|
|
error_message,
|
|
"Use the example in :help g:clipboard as a template, or don't set g:clipboard at all."
|
|
)
|
|
elseif is_blank(clipboard_tool) then
|
|
vim.health.report_warn(
|
|
'No clipboard tool found. Clipboard registers (`"+` and `"*`) will not work.',
|
|
':help clipboard'
|
|
)
|
|
else
|
|
vim.health.report_ok('Clipboard tool found: ' .. clipboard_tool)
|
|
end
|
|
end
|
|
|
|
function M.check()
|
|
clipboard()
|
|
end
|
|
|
|
return M
|