71 lines
1.8 KiB
Lua
71 lines
1.8 KiB
Lua
--[[
|
|
-- this file breaks my brain with all of these booleans, but it seems to work
|
|
--]]
|
|
|
|
local M = {
|
|
-- false = formatting enabled for all buffers
|
|
-- true = formatting disabled for all buffers
|
|
-- number[] = formatting disabled for only these buffers
|
|
---@type true | false | number[]
|
|
_disabled_buffers = false,
|
|
}
|
|
|
|
---@param buf number
|
|
---@return boolean, boolean
|
|
--- returns 2 booleans: enabled for all buffers, enabled for this buffer
|
|
function M._is_enabled(buf)
|
|
if M._disabled_buffers == true then
|
|
return false, false
|
|
end
|
|
|
|
if type(M._disabled_buffers) == "table" then
|
|
local enabled = not vim.tbl_contains(M._disabled_buffers, buf)
|
|
return true, enabled
|
|
end
|
|
|
|
return true, true
|
|
end
|
|
|
|
---@param buf number
|
|
function M.is_enabled(buf)
|
|
local _, enabled = M._is_enabled(buf)
|
|
return enabled
|
|
end
|
|
|
|
function M.register_user_commands()
|
|
vim.api.nvim_create_user_command("FormattingEnable", function()
|
|
M._disabled_buffers = false
|
|
end, {})
|
|
|
|
vim.api.nvim_create_user_command("FormattingEnableBuf", function()
|
|
local current_buf = vim.api.nvim_get_current_buf()
|
|
|
|
if type(M._disabled_buffers) == "table" then
|
|
local new_table = {}
|
|
for _, b in ipairs(M._disabled_buffers) do
|
|
if b ~= current_buf then
|
|
table.insert(new_table, b)
|
|
end
|
|
end
|
|
M._disabled_buffers = new_table
|
|
else
|
|
M._disabled_buffers = false
|
|
end
|
|
end, {})
|
|
|
|
vim.api.nvim_create_user_command("FormattingDisable", function()
|
|
M._disabled_buffers = true
|
|
end, {})
|
|
|
|
vim.api.nvim_create_user_command("FormattingDisableBuf", function()
|
|
local current_buf = vim.api.nvim_get_current_buf()
|
|
if type(M._disabled_buffers) == "table" then
|
|
table.insert(M._disabled_buffers, current_buf)
|
|
else
|
|
M._disabled_buffers = { current_buf }
|
|
end
|
|
end, {})
|
|
end
|
|
|
|
return M
|