local M = {}

M.resize = function(vertical, margin)
    local cur_win = vim.api.nvim_get_current_win()

    vim.cmd(string.format("wincmd %s", vertical and "l" or "j"))
    local new_win = vim.api.nvim_get_current_win()

    local sign = margin > 0
    if not (new_win == cur_win) then
        vim.cmd "wincmd p"
    else
        sign = not sign
    end

    sign = sign and "+" or "-"
    local dir = vertical and "vertical " or ""
    local cmd = dir .. "resize " .. sign .. math.abs(margin) .. "<CR>"
    vim.cmd(cmd)
end

return M