neovim: add module for enabling/disabling formatting

This commit is contained in:
2023-09-01 09:46:23 +03:00
parent ceb2ac3de8
commit 7f6c084a21
4 changed files with 58 additions and 6 deletions

View File

@@ -1,3 +1,10 @@
local formatting = require("daniil.formatting")
vim.api.nvim_create_user_command("ClearQuickfixList", function()
vim.fn.setqflist({})
end, {})
vim.api.nvim_create_user_command("FormattingEnable", formatting.enable, {})
vim.api.nvim_create_user_command("FormattingDisable", formatting.disable, {})
vim.api.nvim_create_user_command("FormattingToggle", formatting.toggle, {})
vim.api.nvim_create_user_command("FormattingStatus", formatting.status, {})

View File

@@ -4,19 +4,20 @@ local lsp_installer = require("mason-lspconfig")
local lspconfig = require("lspconfig")
local null_ls = require("null-ls")
local util = lspconfig.util
local formatting = require("daniil.formatting")
local formatting = null_ls.builtins.formatting
local null_formatting = null_ls.builtins.formatting
mason.setup()
lsp_installer.setup()
null_ls.setup({
sources = {
formatting.prettierd,
formatting.stylua,
formatting.gofmt,
formatting.goimports,
formatting.shfmt,
null_formatting.prettierd,
null_formatting.stylua,
null_formatting.gofmt,
null_formatting.goimports,
null_formatting.shfmt,
},
on_attach = function()
local group = vim.api.nvim_create_augroup("NullLsLspFormatting", { clear = true })
@@ -24,6 +25,10 @@ null_ls.setup({
pattern = "*",
group = group,
callback = function()
if not formatting.is_enabled() then
return
end
vim.lsp.buf.format()
end,
})

View File

@@ -1,3 +1,5 @@
local formatting = require("daniil.formatting")
-- Disable different keys and commands
vim.keymap.set({ "n", "i", "v" }, "<PageDown>", "<nop>")
vim.keymap.set({ "n", "i", "v" }, "<PageUp>", "<nop>")
@@ -35,3 +37,6 @@ vim.keymap.set("n", "<C-q><C-q>", function()
end)
vim.keymap.set("n", "<C-q>n", vim.cmd.cnext)
vim.keymap.set("n", "<C-q>N", vim.cmd.cprevious)
-- formatting
vim.keymap.set("n", "<C-g>", formatting.toggle)

View File

@@ -0,0 +1,35 @@
local M = {}
vim.g.daniil_formatting_enabled = 1
function M.enable()
vim.g.daniil_formatting_enabled = 1
end
function M.disable()
vim.g.daniil_formatting_enabled = 0
end
function M.toggle()
if M.is_enabled() then
M.disable()
else
M.enable()
end
M.status()
end
function M.is_enabled()
return vim.g.daniil_formatting_enabled == 1
end
function M.status()
if M.is_enabled() then
vim.notify("Formatting enabled")
else
vim.notify("Formatting disabled")
end
end
return M