aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-treesitter/compat.lua12
-rw-r--r--lua/nvim-treesitter/install.lua9
-rw-r--r--lua/nvim-treesitter/shell_command_selectors.lua2
-rw-r--r--lua/nvim-treesitter/utils.lua2
4 files changed, 19 insertions, 6 deletions
diff --git a/lua/nvim-treesitter/compat.lua b/lua/nvim-treesitter/compat.lua
index c56e12b18..a683502ff 100644
--- a/lua/nvim-treesitter/compat.lua
+++ b/lua/nvim-treesitter/compat.lua
@@ -24,4 +24,16 @@ function M.get_node_text(node, bufnr)
return (ts.get_node_text or tsq.get_node_text)(node, bufnr)
end
+function M.require_language(lang, opts)
+ return (ts.language.add or ts.language.require_language)(lang, opts)
+end
+
+function M.flatten(t)
+ if vim.fn.has "nvim-0.10" then
+ return vim.iter(t):flatten():totable()
+ else
+ return vim.tbl_flatten(t)
+ end
+end
+
return M
diff --git a/lua/nvim-treesitter/install.lua b/lua/nvim-treesitter/install.lua
index c2d961fb8..ec7d6245b 100644
--- a/lua/nvim-treesitter/install.lua
+++ b/lua/nvim-treesitter/install.lua
@@ -7,6 +7,7 @@ local parsers = require "nvim-treesitter.parsers"
local info = require "nvim-treesitter.info"
local configs = require "nvim-treesitter.configs"
local shell = require "nvim-treesitter.shell_command_selectors"
+local compat = require "nvim-treesitter.compat"
local M = {}
@@ -59,7 +60,7 @@ local function reattach_if_possible_fn(lang, error_on_fail)
local ft = vim.bo[buf].filetype
ok, err = pcall(vim.treesitter.language.add, lang, { filetype = ft })
else
- ok, err = pcall(vim.treesitter.language.require_language, lang)
+ ok, err = pcall(compat.require_language, lang)
end
if not ok and error_on_fail then
vim.notify("Could not load parser for " .. lang .. ": " .. vim.inspect(err))
@@ -535,7 +536,7 @@ local function install(options)
languages = parsers.available_parsers()
ask = false
else
- languages = vim.tbl_flatten { ... }
+ languages = compat.flatten { ... }
ask = ask_reinstall
end
@@ -573,7 +574,7 @@ function M.update(options)
reset_progress_counter()
if ... and ... ~= "all" then
---@type string[]
- local languages = vim.tbl_flatten { ... }
+ local languages = compat.flatten { ... }
local installed = 0
for _, lang in ipairs(languages) do
if (not is_installed(lang)) or (needs_update(lang)) then
@@ -616,7 +617,7 @@ function M.uninstall(...)
ensure_installed_parsers = utils.difference(ensure_installed_parsers, configs.get_ignored_parser_installs())
---@type string[]
- local languages = vim.tbl_flatten { ... }
+ local languages = compat.flatten { ... }
for _, lang in ipairs(languages) do
local install_dir, err = configs.get_parser_install_dir()
if err then
diff --git a/lua/nvim-treesitter/shell_command_selectors.lua b/lua/nvim-treesitter/shell_command_selectors.lua
index 96ad6acc4..f1d557a74 100644
--- a/lua/nvim-treesitter/shell_command_selectors.lua
+++ b/lua/nvim-treesitter/shell_command_selectors.lua
@@ -152,7 +152,7 @@ function M.select_compile_command(repo, cc, compile_location)
info = "Compiling...",
err = "Error during compilation",
opts = {
- args = vim.tbl_flatten(M.select_compiler_args(repo, cc)),
+ args = require("nvim-treesitter.compat").flatten(M.select_compiler_args(repo, cc)),
cwd = compile_location,
},
}
diff --git a/lua/nvim-treesitter/utils.lua b/lua/nvim-treesitter/utils.lua
index 4aa8e5984..d920f4a61 100644
--- a/lua/nvim-treesitter/utils.lua
+++ b/lua/nvim-treesitter/utils.lua
@@ -83,7 +83,7 @@ function M.setup_commands(mod, commands)
local f_args = def.f_args or "<f-args>"
local call_fn =
string.format("lua require'nvim-treesitter.%s'.commands.%s['run<bang>'](%s)", mod, command_name, f_args)
- local parts = vim.tbl_flatten {
+ local parts = require("nvim-treesitter.compat").flatten {
"command!",
"-bar",
def.args,