treesitter.lua 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. -- Minimal setup (optional but recommended)
  2. require('nvim-treesitter').setup {
  3. install_dir = vim.fn.stdpath('data') .. '/site',
  4. }
  5. -- Ensure that Treesitter starts on every buffer
  6. vim.api.nvim_create_autocmd({ "FileType", "BufEnter", "BufWinEnter" }, {
  7. callback = function()
  8. local lang = vim.treesitter.language.get_lang(vim.bo.filetype)
  9. if lang and vim.api.nvim_buf_is_valid(0) then
  10. vim.schedule(function()
  11. pcall(vim.treesitter.start, 0, lang)
  12. end)
  13. end
  14. end,
  15. desc = "Auto-start Treesitter (current main branch)",
  16. })
  17. -- Manual command to force it if it fails
  18. vim.api.nvim_create_user_command("TSToggle", function()
  19. local lang = vim.treesitter.language.get_lang(vim.bo.filetype)
  20. if lang then
  21. pcall(vim.treesitter.start, 0, lang)
  22. print("Treesitter forced start for " .. lang)
  23. else
  24. print("No Treesitter parser found for this filetype.")
  25. end
  26. end, {})
  27. -- NOTE: To install parsers you previously had in ensure_installed, run:
  28. -- :TSInstall c lua java python bash html css javascript bibtex cmake cpp latex perl regex toml yaml