return {
	"nvim-treesitter/nvim-treesitter",
	build = ":TSUpdate",
	event = { "BufReadPost", "BufNewFile" },
	config = function()
		-- In the latest nvim-treesitter (post-refactor), the plugin only handles
		-- parser installation. Highlighting, folding, and indenting are handled
		-- by native Neovim Treesitter integration.

		-- CRITICAL: Add nvim-treesitter/runtime to runtimepath so queries are found
		local ts_runtime = vim.fn.stdpath("data") .. "/lazy/nvim-treesitter/runtime"
		vim.opt.runtimepath:prepend(ts_runtime)

		-- Setup nvim-treesitter (minimal config for parser installation)
		require("nvim-treesitter").setup({
			-- Parser installation directory (default: stdpath('data')/site)
			install_dir = vim.fn.stdpath("data") .. "/site",
		})

		-- Enable Treesitter-based indenting (selective)
		vim.api.nvim_create_autocmd("FileType", {
			pattern = "*",
			callback = function()
				local exclude = { "python" }
				for _, lang in ipairs(exclude) do
					if vim.bo.filetype == lang then
						return
					end
				end

				if vim.bo.buftype == "" and vim.bo.filetype ~= "" then
					pcall(function()
						vim.bo.indentexpr = "v:lua.vim.treesitter.indentexpr()"
					end)
				end
			end,
			desc = "Enable Treesitter indenting (selective)",
		})

		-- Auto-install parsers for these languages when opening a file
		local ensure_installed = {
			"python",
			"lua",
			"json",
			"yaml",
			"javascript",
			"typescript",
			"tsx",
			"vue",
			"html",
			"css",
			"bash",
			"markdown",
			"markdown_inline",
            "rust",
		}

		-- Install parsers
		local ok, install = pcall(require, "nvim-treesitter.install")
		if ok then
			for _, lang in ipairs(ensure_installed) do
				vim.schedule(function()
					install.install({ lang })
				end)
			end
		end
	end,
}
