-- Animación de "retipeo" del buffer, con vim.uv (antes dependía de animation.nvim). local fps = 15 -- un caracter por frame, como la versión original local redraw_buffer = function() local buffer = vim.api.nvim_get_current_buf() local lines = vim.api.nvim_buf_get_lines(buffer, 0, -1, true) local place_holder = {} for _ = 1, #lines do table.insert(place_holder, "") end vim.api.nvim_buf_set_lines(buffer, 0, -1, true, place_holder) local line_nr, col = 1, 0 local timer = assert(vim.uv.new_timer()) timer:start( 0, math.floor(1000 / fps), vim.schedule_wrap(function() if not vim.api.nvim_buf_is_valid(buffer) or line_nr > #lines then timer:stop() timer:close() return end col = col + 1 local line = lines[line_nr] vim.api.nvim_buf_set_lines(buffer, line_nr - 1, line_nr, true, { line:sub(1, col) }) if col >= #line then line_nr = line_nr + 1 col = 0 end end) ) end return { redraw_buffer = redraw_buffer, }