From 64afe9c9eee1d4de27906019e16209e1decbb39d Mon Sep 17 00:00:00 2001 From: Squibid Date: Mon, 14 Jul 2025 19:42:16 -0400 Subject: [PATCH] revert treesitter back to master branch --- lua/conf/plugins/treesitter.lua | 101 ++++++++++++-------------------- 1 file changed, 38 insertions(+), 63 deletions(-) diff --git a/lua/conf/plugins/treesitter.lua b/lua/conf/plugins/treesitter.lua index 4905080..18bc158 100644 --- a/lua/conf/plugins/treesitter.lua +++ b/lua/conf/plugins/treesitter.lua @@ -1,79 +1,54 @@ local map, auto = core.misc.map, core.misc.auto ---- to highlight a buffer or not ----@param buf number buffer number ----@return boolean to_highlight -local function highlight(buf) - local ft = vim.api.nvim_get_option_value("ft", { buf = buf }) - - -- disable highlighting on big files - local ok, stats = pcall(vim.uv.fs_stat, vim.api.nvim_buf_get_name(buf)) - if ok and stats and stats.size > (1000 * 100 * 10) --[[1MB]] then - return false - end - - -- fts to stop highlighting in - if table.contains({ - "diff", "tex" - }, ft) then - return false - end - - return true -end - ---- to indent a buffer or not ----@param buf number buffer number ----@return boolean to_indent -local function indent(buf) - local ft = vim.api.nvim_get_option_value("ft", { buf = buf }) - - -- disable indentation on filetypes - if not table.contains({ - "php" - }, ft) then - return false - end - - return true -end - return { { "nvim-treesitter/nvim-treesitter", - branch = "main", - disable = not vim.fn.has("nvim-0.11.0"), + disable = not vim.fn.has("nvim-0.10.0"), config = function() vim.cmd("TSUpdate") end, load = function() - local treesitter = require("nvim-treesitter") + require("nvim-treesitter.configs").setup { + -- good default parsers + ensure_installed = { "c", "lua", "vim", "vimdoc", "markdown", + "markdown_inline", "java", "bash", "css", "html", "luadoc", + "make" + }, - -- seems to not be very async despite the docs saying it is - -- default parsers to install - -- treesitter.install { "c", "lua", "vim", "vimdoc", "markdown", - -- "markdown_inline", "java", "bash", "css", "html", "luadoc", "make" - -- } + -- indentation + indent = { + enable = true, - -- enable highlighting - auto("FileType", { - callback = function(e) - -- I like both treesitter and default highlighting enabled - if highlight(e.buf) then - -- stop errors from showing up, I don't care - pcall(vim.treesitter.start) - vim.bo.syntax = "on" + disable = function(lang, _) + -- disable indenting in php (it's more broken with than without) + return table.contains(({ + "php" + }), lang) end + }, - -- indenting - if indent(e.buf) then - vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()" + -- enable highlighting + highlight = { + enable = true, + -- use vim highlighting in addition to treesitter + additional_vim_regex_highlighting = true, + + disable = function(lang, buf) + -- disable in some files where vim's builtin highlighting is better + if table.contains(({ + "diff", "tex" + }), lang) then + return true + end + + -- disable in big files + local ok, stats = pcall(vim.uv.fs_stat, + vim.api.nvim_buf_get_name(buf)) + if ok and stats and stats.size > (1024 * 100 * 10) --[[1MB]] then + return true + end end - - -- set the folding method - vim.opt.foldmethod = "expr" - vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()' - end - }) + } + } end },