@@ -874,27 +874,36 @@ require('lazy').setup({
874874 branch = ' main' ,
875875 -- [[ Configure Treesitter ]] See `:help nvim-treesitter-intro`
876876 config = function ()
877+ -- ensure basic parser are installed
877878 local parsers = { ' bash' , ' c' , ' diff' , ' html' , ' lua' , ' luadoc' , ' markdown' , ' markdown_inline' , ' query' , ' vim' , ' vimdoc' }
878879 require (' nvim-treesitter' ).install (parsers )
880+
881+ --- @param buf integer
882+ --- @param language string
883+ local function treesitter_try_attach (buf , language )
884+ -- check if parser exists and load it
885+ if not vim .treesitter .language .add (language ) then return end
886+ -- enables syntax highlighting and other treesitter features
887+ vim .treesitter .start (buf , language )
888+
889+ -- enables treesitter based folds
890+ -- for more info on folds see `:help folds`
891+ -- vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
892+ -- vim.wo.foldmethod = 'expr'
893+
894+ -- enables treesitter based indentation
895+ vim .bo .indentexpr = " v:lua.require'nvim-treesitter'.indentexpr()"
896+ end
897+
898+ local available_parsers = require (' nvim-treesitter' ).get_available ()
879899 vim .api .nvim_create_autocmd (' FileType' , {
880900 callback = function (args )
881901 local buf , filetype = args .buf , args .match
882902
883903 local language = vim .treesitter .language .get_lang (filetype )
884904 if not language then return end
885905
886- -- check if parser exists and load it
887- if not vim .treesitter .language .add (language ) then return end
888- -- enables syntax highlighting and other treesitter features
889- vim .treesitter .start (buf , language )
890-
891- -- enables treesitter based folds
892- -- for more info on folds see `:help folds`
893- -- vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
894- -- vim.wo.foldmethod = 'expr'
895-
896- -- enables treesitter based indentation
897- vim .bo .indentexpr = " v:lua.require'nvim-treesitter'.indentexpr()"
906+ treesitter_try_attach (buf , language )
898907 end ,
899908 })
900909 end ,
0 commit comments