diff --git a/lua/nvim-paredit/api/deletions.lua b/lua/nvim-paredit/api/deletions.lua index 3bcb00b..b54a2aa 100644 --- a/lua/nvim-paredit/api/deletions.lua +++ b/lua/nvim-paredit/api/deletions.lua @@ -2,8 +2,7 @@ local selections = require("nvim-paredit.api.selections") local M = {} -function M.delete_form() - local range = selections.get_range_around_form() +local function delete_form_impl(range) if not range then return end @@ -18,24 +17,15 @@ function M.delete_form() ) end -function M.delete_top_level_form() - local range = selections.get_range_around_top_level_form() - if not range then - return - end +function M.delete_form() + delete_form_impl(selections.get_range_around_form()) +end - local buf = vim.api.nvim_get_current_buf() - -- stylua: ignore - vim.api.nvim_buf_set_text( - buf, - range[1], range[2], - range[3], range[4], - {} - ) +function M.delete_top_level_form() + delete_form_impl(selections.get_range_around_top_level_form()) end -function M.delete_in_form() - local range = selections.get_range_in_form() +local function delete_in_form_impl(range) if not range then return end @@ -52,22 +42,12 @@ function M.delete_in_form() vim.api.nvim_win_set_cursor(0, { range[1] + 1, range[2] }) end -function M.delete_in_top_level_form() - local range = selections.get_range_in_top_level_form() - if not range then - return - end - - local buf = vim.api.nvim_get_current_buf() - -- stylua: ignore - vim.api.nvim_buf_set_text( - buf, - range[1], range[2], - range[3], range[4], - {} - ) +function M.delete_in_form() + delete_in_form_impl(selections.get_range_in_form()) +end - vim.api.nvim_win_set_cursor(0, { range[1] + 1, range[2] }) +function M.delete_in_top_level_form() + delete_in_form_impl(selections.get_range_in_top_level_form()) end function M.delete_element()