aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/nvim-treesitter.txt9
-rw-r--r--lua/nvim-treesitter/configs.lua20
2 files changed, 29 insertions, 0 deletions
diff --git a/doc/nvim-treesitter.txt b/doc/nvim-treesitter.txt
index d253194c7..0ee9da127 100644
--- a/doc/nvim-treesitter.txt
+++ b/doc/nvim-treesitter.txt
@@ -256,6 +256,15 @@ particular language.
A list of modules can be found at |:TSModuleInfo|
A list of languages can be found at |:TSInstallInfo|
+ *:TSToggleAll*
+:TSToggleAll {module} [{language}]~
+
+Toggle (enable if disabled, disable if enabled) {module} for the session.
+If {language} is specified, toggle module for the session only for this
+particular language.
+A list of modules can be found at |:TSModuleInfo|
+A list of languages can be found at |:TSInstallInfo|
+
*:TSModuleInfo*
:TSModuleInfo [{module}]~
diff --git a/lua/nvim-treesitter/configs.lua b/lua/nvim-treesitter/configs.lua
index 9f7627a00..4b815dd3f 100644
--- a/lua/nvim-treesitter/configs.lua
+++ b/lua/nvim-treesitter/configs.lua
@@ -151,6 +151,19 @@ local function toggle_module(mod, bufnr, lang)
end
end
+-- Toggles the module globally and for all current buffers.
+-- @param mod path to module
+local function toggle_all(mod)
+ local config_mod = M.get_module(mod)
+ if not config_mod then return end
+
+ if config_mod.enable then
+ disable_all(mod)
+ else
+ enable_all(mod)
+ end
+end
+
-- Recurses through all modules including submodules
-- @param accumulator function called for each module
-- @param root root configuration table to start at
@@ -217,6 +230,13 @@ M.commands = {
"-complete=custom,nvim_treesitter#available_modules",
},
},
+ TSToggleAll = {
+ run = toggle_all,
+ args = {
+ "-nargs=+",
+ "-complete=custom,nvim_treesitter#available_modules",
+ },
+ },
TSConfigInfo = {
run = config_info,
args = {