aboutsummaryrefslogtreecommitdiffstats
path: root/lua/nvim-treesitter/health.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/nvim-treesitter/health.lua')
-rw-r--r--lua/nvim-treesitter/health.lua26
1 files changed, 19 insertions, 7 deletions
diff --git a/lua/nvim-treesitter/health.lua b/lua/nvim-treesitter/health.lua
index 1e17bb00b..037887c59 100644
--- a/lua/nvim-treesitter/health.lua
+++ b/lua/nvim-treesitter/health.lua
@@ -1,4 +1,5 @@
local install = require('nvim-treesitter.install')
+local parsers = require('nvim-treesitter.parsers')
local config = require('nvim-treesitter.config')
local util = require('nvim-treesitter.util')
local tsq = vim.treesitter.query
@@ -123,14 +124,25 @@ function M.check()
-- Installation dependency checks
install_health()
-- Parser installation checks
+ local languages = config.installed_parsers()
local parser_installation = { 'Parser/Features' .. string.rep(' ', 9) .. 'H L F I J' }
- for _, parser_name in pairs(config.installed_parsers()) do
- local out = ' - ' .. parser_name .. string.rep(' ', 20 - #parser_name)
- for _, query_group in pairs(M.bundled_queries) do
- local status, err = query_status(parser_name, query_group)
- out = out .. status .. ' '
- if err then
- table.insert(error_collection, { parser_name, query_group, err })
+ for _, lang in pairs(languages) do
+ local parser = parsers.configs[lang]
+ local out = ' - ' .. lang .. string.rep(' ', 20 - #lang)
+ if parser.install_info then
+ for _, query_group in pairs(M.bundled_queries) do
+ local status, err = query_status(lang, query_group)
+ out = out .. status .. ' '
+ if err then
+ table.insert(error_collection, { lang, query_group, err })
+ end
+ end
+ end
+ if parser.requires then
+ for _, p in pairs(parser.requires) do
+ if not vim.list_contains(languages, p) then
+ table.insert(error_collection, { lang, 'queries', 'dependency ' .. p .. ' missing' })
+ end
end
end
table.insert(parser_installation, vim.fn.trim(out, ' ', 2))