应该涉及到以下函数:

旧 API (失效或已变更)新的替代方案关键变更说明
node:range() (节点方法)vim.treesitter.get_range(node, bufnr)这是你遇到的核心问题node:range() 方法已被弃用,需改用新函数。
vim.treesitter.get_node_text(node, bufnr)vim.treesitter.get_node_text(node, bufnr)函数签名和使用方式保持不变,但其内部的 get_range 实现已被更新。
get_node_range (私有函数)vim.treesitter.get_range()私有函数 get_node_range 已被移除,应使用新函数[reference:3][reference:4]。

暂时插件适配不是很好的时候可以使用以下猴子补丁修复(在init插件管理器之前加载)

local function patch_treesitter_range()
    local original_get_node_text = vim.treesitter.get_node_text
    vim.treesitter.get_node_text = function(node, buf, opts)
        local ok, result = pcall(original_get_node_text, node, buf, opts)
        if not ok then
            return ""
        end
        return result
    end
    
    -- Patch nvim-treesitter query predicates if available
    local ok, predicates = pcall(require, 'nvim-treesitter.query_predicates')
    if ok and type(predicates) == "table" and predicates.handler then
        local original_handler = predicates.handler
        predicates.handler = function(...)
            local success, result = pcall(original_handler, ...)
            if not success then
                return false
            end
            return result
        end
    end
end
vim.defer_fn(patch_treesitter_range, 100)