aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorThomas Vigouroux <tomvig38@gmail.com>2020-07-15 08:45:08 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-07-15 09:00:14 +0200
commite405802863baa84eaf468e8169c048ab5f6c64c0 (patch)
tree84084de4faaf9756fbdfd1f31824635eb027afd8 /lua
parentdocs(README): add new actions badge (diff)
downloadnvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar.gz
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar.bz2
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar.lz
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar.xz
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.tar.zst
nvim-treesitter-e405802863baa84eaf468e8169c048ab5f6c64c0.zip
fix(configs): simplify module setup process
Abuse a bit of tbl_extend and tbl_deep_extend. We might want to continue this effort, and simplify this part of the plugin. Fixes #178
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-treesitter/configs.lua26
1 files changed, 9 insertions, 17 deletions
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua
index f09c8ac99..6a094b39b 100644
--- a/lua/nvim-treesitter/configs.lua
+++ b/lua/nvim-treesitter/configs.lua
@@ -19,9 +19,8 @@ end
local config = {
modules = {},
- ensure_installed = nil
+ ensure_installed = {}
}
-local user_setup_data = nil
-- List of modules that need to be setup on initialization.
local queued_modules_defs = {}
-- Whether we've initialized the plugin yet.
@@ -86,9 +85,7 @@ local builtin_modules = {
is_supported = function(lang)
return has_some_textobject_mapping(lang) or queries.has_textobjects(lang)
end,
- keymaps = {
- inverse_mappings = true
- }
+ keymaps = {}
}
}
@@ -281,7 +278,11 @@ end
-- Setup call for users to override module configurations.
-- @param user_data module overrides
function M.setup(user_data)
- user_setup_data = user_data or {}
+ for name, data in pairs(user_data) do
+ local mod = config.modules[name] or {}
+ M.setup_module(mod, data, name)
+ config.modules[name] = mod
+ end
end
-- Sets up a single module or all submodules of a group.
@@ -301,15 +302,7 @@ function M.setup_module(mod, data, mod_name)
mod.disable = data.disable
end
if mod.keymaps and type(data.keymaps) == 'table' then
- if mod.keymaps.inverse_mappings then
- mod.keymaps = data.keymaps
- else
- for f, map in pairs(data.keymaps) do
- if mod.keymaps[f] then
- mod.keymaps[f] = map
- end
- end
- end
+ mod.keymaps = vim.tbl_extend("force", mod.keymaps, data.keymaps)
end
for k, v in pairs(data) do
@@ -365,8 +358,7 @@ function M.define_modules(mod_defs)
})
end, mod_defs)
- M.setup_module(mod_defs, user_setup_data)
- config.modules = vim.tbl_extend("keep", config.modules, mod_defs)
+ config.modules = vim.tbl_deep_extend("keep", config.modules, mod_defs)
for _, lang in pairs(parsers.available_parsers()) do
for _, mod in ipairs(M.available_modules(mod_defs)) do