feat: add healthcheck (#7)
Problem: users had no way to diagnose why completions were missing or incomplete. Solution: add a :checkhealth module that verifies blink.cmp is installed, tmux is on PATH and responds to list-commands, and man is available for command descriptions.
This commit is contained in:
parent
7befe69ea1
commit
7003996643
3 changed files with 44 additions and 4 deletions
|
|
@ -2,6 +2,12 @@
|
||||||
"runtime.version": "Lua 5.1",
|
"runtime.version": "Lua 5.1",
|
||||||
"runtime.path": ["lua/?.lua", "lua/?/init.lua"],
|
"runtime.path": ["lua/?.lua", "lua/?/init.lua"],
|
||||||
"diagnostics.globals": ["vim", "jit"],
|
"diagnostics.globals": ["vim", "jit"],
|
||||||
|
"diagnostics.disable": [
|
||||||
|
"undefined-doc-name",
|
||||||
|
"undefined-doc-class",
|
||||||
|
"undefined-field",
|
||||||
|
"need-check-nil"
|
||||||
|
],
|
||||||
"workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"],
|
"workspace.library": ["$VIMRUNTIME/lua", "${3rd}/luv/library"],
|
||||||
"workspace.checkThirdParty": false,
|
"workspace.checkThirdParty": false,
|
||||||
"completion.callSnippet": "Replace"
|
"completion.callSnippet": "Replace"
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ local function parse_descriptions()
|
||||||
local j = def.line + 1
|
local j = def.line + 1
|
||||||
while j <= block_end do
|
while j <= block_end do
|
||||||
local l = lines[j]
|
local l = lines[j]
|
||||||
if l:match('^%s+%(alias:') then
|
if l:match('^%s+%(alias:') or vim.trim(l) == '' then
|
||||||
j = j + 1
|
j = j + 1
|
||||||
elseif l:match('^ ') then
|
elseif l:match('^ ') then
|
||||||
local stripped = vim.trim(l)
|
local stripped = vim.trim(l)
|
||||||
|
|
@ -54,8 +54,6 @@ local function parse_descriptions()
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
elseif vim.trim(l) == '' then
|
|
||||||
j = j + 1
|
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
|
@ -84,7 +82,7 @@ local function parse_descriptions()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local desc = table.concat(parts, '\n\n')
|
local desc = table.concat(parts, '\n\n')
|
||||||
desc = desc:gsub('\xe2\x80\x90 ', '')
|
desc = desc:gsub(string.char(0xe2, 0x80, 0x90) .. ' ', '')
|
||||||
desc = desc:gsub(' +', ' ')
|
desc = desc:gsub(' +', ' ')
|
||||||
if desc ~= '' then
|
if desc ~= '' then
|
||||||
descs[def.cmd] = desc
|
descs[def.cmd] = desc
|
||||||
|
|
|
||||||
36
lua/blink-cmp-tmux/health.lua
Normal file
36
lua/blink-cmp-tmux/health.lua
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.check()
|
||||||
|
vim.health.start('blink-cmp-tmux')
|
||||||
|
|
||||||
|
local ok = pcall(require, 'blink.cmp')
|
||||||
|
if ok then
|
||||||
|
vim.health.ok('blink.cmp is installed')
|
||||||
|
else
|
||||||
|
vim.health.error('blink.cmp is not installed')
|
||||||
|
end
|
||||||
|
|
||||||
|
local bin = vim.fn.exepath('tmux')
|
||||||
|
if bin ~= '' then
|
||||||
|
vim.health.ok('tmux executable found: ' .. bin)
|
||||||
|
else
|
||||||
|
vim.health.error('tmux executable not found')
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local result = vim.system({ 'tmux', 'list-commands' }):wait()
|
||||||
|
if result.code == 0 and result.stdout and result.stdout ~= '' then
|
||||||
|
vim.health.ok('tmux list-commands produces output')
|
||||||
|
else
|
||||||
|
vim.health.warn('tmux list-commands failed (completions will be unavailable)')
|
||||||
|
end
|
||||||
|
|
||||||
|
local man_bin = vim.fn.exepath('man')
|
||||||
|
if man_bin ~= '' then
|
||||||
|
vim.health.ok('man executable found: ' .. man_bin)
|
||||||
|
else
|
||||||
|
vim.health.warn('man executable not found (command descriptions will be unavailable)')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
Loading…
Add table
Add a link
Reference in a new issue