local M = {} function M.buf_edit_lines(buf, start_row, end_row, callback) local lines = {} lines = vim.api.nvim_buf_get_lines(buf, start_row, end_row, true) lines = callback(lines) return vim.api.nvim_buf_set_lines(buf, start_row, end_row, true, lines) end function M.edit_current_line(callback) local row, _ = unpack(vim.api.nvim_win_get_cursor(0)) return M.buf_edit_lines(0, row - 1, row, callback) end return M