aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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
-rw-r--r--tests/indent/common.lua2
5 files changed, 20 insertions, 7 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,
diff --git a/tests/indent/common.lua b/tests/indent/common.lua
index 1ddd91a40..6cfedafff 100644
--- a/tests/indent/common.lua
+++ b/tests/indent/common.lua
@@ -180,7 +180,7 @@ function Runner:whole_file(dirs, opts)
assert.is.same(1, vim.fn.isdirectory(dir.filename))
return dir.filename
end, dirs)
- local files = vim.tbl_flatten(vim.tbl_map(scan_dir, dirs))
+ local files = require("nvim-treesitter.compat").flatten(vim.tbl_map(scan_dir, dirs))
for _, file in ipairs(files) do
local relpath = Path:new(file):make_relative(self.base_dir.filename)
self.it(relpath, function()