return {
    {
        "nvim-treesitter/nvim-treesitter",
        build = ":TSUpdate",
        event = { "VeryLazy" },
        dependencies = {
            "nvim-treesitter/nvim-treesitter-textobjects",
        },
        opts = {
            highlight = {
                enable = true,
                additional_vim_regex_highlighting = { "php" },
            },
            indent = {
                enable = false,
            },
            textobjects = {
                select = {
                    enable = true,
                    keymaps = {
                        ["af"] = "@function.outer",
                        ["if"] = "@function.inner",
                        ["ia"] = "@parameter.inner",
                    },
                },
                swap = {
                    enable = true,
                    swap_next = {
                        ["<leader>@"] = "@parameter.inner",
                    },
                },
                move = {
                    enable = true,
                    goto_next_start = {
                        ["]]"] = "@function.outer",
                    },
                    goto_next_end = {
                        ["]["] = "@function.outer",
                    },
                    goto_previous_start = {
                        ["[["] = "@function.outer",
                    },
                    goto_previous_end = {
                        ["[]"] = "@function.outer",
                    },
                },
            },
        },
        config = function(_, opts)
            require("nvim-treesitter.configs").setup(opts)
        end,
    },
    {
        "windwp/nvim-ts-autotag",
        opts = {},
    },
}