return {
  "nvim-treesitter/nvim-treesitter",
  event = "VeryLazy",
  build = ":TSUpdate",
  config = function()
    require("nvim-treesitter.configs").setup({
      matchup = {
        enable = true, -- mandatory, false will disable the whole extension
      },
      textobjects = { enable = true },
      indent = { enable = true },
      highlight = {
        enable = true, -- false will disable the whole extension
        use_languagetree = true,
      },
      sync_install = false,
      ignore_install = {},
      auto_install = true,
      ensure_installed = {
        "angular",
        "arduino",
        "asm",
        "astro",
        "awk",
        "bash",
        "c",
        "clojure",
        "cmake",
        "comment",
        "commonlisp",
        "cpp",
        "css",
        "csv",
        "diff",
        "dockerfile",
        "dot",
        "erlang",
        "fish",
        "git_config",
        "git_rebase",
        "gitcommit",
        "gitignore",
        "go",
        "gomod",
        "gosum",
        "gotmpl",
        "gowork",
        "gpg",
        "graphql",
        "html",
        "http",
        "ini",
        "java",
        "javascript",
        "jq",
        "jsdoc",
        "json",
        "json5",
        "kconfig",
        "kotlin",
        "lua",
        "luadoc",
        "make",
        "markdown",
        "markdown_inline",
        "nim",
        "nim_format_string",
        "perl",
        "prisma",
        "properties",
        "pug",
        "python",
        "ruby",
        "rust",
        "scala",
        "scss",
        "solidity",
        "sql",
        "ssh_config",
        "svelte",
        "tmux",
        "tsx",
        "toml",
        "twig",
        "typescript",
        "typoscript",
        "vim",
        "regex",
        "vue",
        "xml",
        "yaml",
        "zig",
      },
    })
  end,
}
