diff options
| author | Thomas Vigouroux <tomvig38@gmail.com> | 2020-07-15 08:45:08 +0200 |
|---|---|---|
| committer | Thomas Vigouroux <39092278+vigoux@users.noreply.github.com> | 2020-07-15 09:00:14 +0200 |
| commit | e405802863baa84eaf468e8169c048ab5f6c64c0 (patch) | |
| tree | 84084de4faaf9756fbdfd1f31824635eb027afd8 /lua | |
| parent | docs(README): add new actions badge (diff) | |
| download | nvim-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.lua | 26 |
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 |
