aboutsummaryrefslogtreecommitdiffstats
path: root/plugin/nvim-treesitter.lua
diff options
context:
space:
mode:
authorChristian Clason <c.clason@uni-graz.at>2023-06-12 09:54:30 -0600
committerChristian Clason <c.clason@uni-graz.at>2025-05-12 18:43:40 +0200
commit692b051b09935653befdb8f7ba8afdb640adf17b (patch)
tree167162b6b129ae04f68c5735078521a72917c742 /plugin/nvim-treesitter.lua
parentfeat(c-family): inherit injections (diff)
downloadnvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst
nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'plugin/nvim-treesitter.lua')
-rw-r--r--plugin/nvim-treesitter.lua102
1 files changed, 77 insertions, 25 deletions
diff --git a/plugin/nvim-treesitter.lua b/plugin/nvim-treesitter.lua
index 4ea3925fd..3ab264d41 100644
--- a/plugin/nvim-treesitter.lua
+++ b/plugin/nvim-treesitter.lua
@@ -1,34 +1,86 @@
--- Last Change: 2022 Apr 16
-
if vim.g.loaded_nvim_treesitter then
return
end
vim.g.loaded_nvim_treesitter = true
--- setup modules
-require("nvim-treesitter").setup()
-
local api = vim.api
--- define autocommands
-local augroup = api.nvim_create_augroup("NvimTreesitter", {})
+local function complete_available_parsers(arglead)
+ return vim.iter.filter(function(v)
+ return v:find(arglead)
+ end, require('nvim-treesitter.parsers').get_available())
+end
+
+local function complete_installed_parsers(arglead)
+ return vim.iter.filter(function(v)
+ return v:find(arglead)
+ end, require('nvim-treesitter.config').installed_parsers())
+end
+
+-- create user commands
+api.nvim_create_user_command('TSInstallInfo', function()
+ require('nvim-treesitter.install').info()
+end, { nargs = 0, desc = 'List available treesitter parsers' })
+
+api.nvim_create_user_command('TSInstall', function(args)
+ require('nvim-treesitter.install').install(args.fargs, { force = args.bang })
+end, {
+ nargs = '+',
+ bang = true,
+ bar = true,
+ complete = complete_available_parsers,
+ desc = 'Install treesitter parsers',
+})
+
+api.nvim_create_user_command('TSInstallFromGrammar', function(args)
+ require('nvim-treesitter.install').install(args.fargs, {
+ generate_from_grammar = true,
+ force = args.bang,
+ })
+end, {
+ nargs = '+',
+ bang = true,
+ bar = true,
+ complete = complete_available_parsers,
+ desc = 'Install treesitter parsers from grammar',
+})
+
+api.nvim_create_user_command('TSInstallSync', function(args)
+ require('nvim-treesitter.install').install(args.fargs, {
+ with_sync = true,
+ force = args.bang,
+ })
+end, {
+ nargs = '+',
+ bang = true,
+ bar = true,
+ complete = complete_available_parsers,
+ desc = 'Install treesitter parsers synchronously',
+})
+
+api.nvim_create_user_command('TSUpdate', function(args)
+ require('nvim-treesitter.install').update(args.fargs)
+end, {
+ nargs = '*',
+ bar = true,
+ complete = complete_installed_parsers,
+ desc = 'Update installed treesitter parsers',
+})
+
+api.nvim_create_user_command('TSUpdateSync', function(args)
+ require('nvim-treesitter.install').update(args.fargs, { with_sync = true })
+end, {
+ nargs = '*',
+ bar = true,
+ complete = complete_installed_parsers,
+ desc = 'Update installed treesitter parsers synchronously',
+})
-api.nvim_create_autocmd("Filetype", {
- pattern = "query",
- group = augroup,
- callback = function()
- api.nvim_clear_autocmds {
- group = augroup,
- event = "BufWritePost",
- }
- api.nvim_create_autocmd("BufWritePost", {
- group = augroup,
- buffer = 0,
- callback = function(opts)
- require("nvim-treesitter.query").invalidate_query_file(opts.file)
- end,
- desc = "Invalidate query file",
- })
- end,
- desc = "Reload query",
+api.nvim_create_user_command('TSUninstall', function(args)
+ require('nvim-treesitter.install').uninstall(args.fargs)
+end, {
+ nargs = '+',
+ bar = true,
+ complete = complete_installed_parsers,
+ desc = 'Uninstall treesitter parsers',
})