nvim: Add autoformat on save w/toggle ui

This commit is contained in:
Daniel Lundin 2025-01-12 22:54:28 +01:00
parent 3b577407f7
commit d8a3002546
Signed by: dln
SSH key fingerprint: SHA256:dQy1Xj3UiqJYpKR5ggQ2bxgz4jCH8IF+k3AB8o0kmdI

View file

@ -118,6 +118,31 @@ vim.keymap.set({ "i", "s" }, "<Tab>", function()
end, { expr = true }) end, { expr = true })
-- Autoformat
vim.g.autoformat_enabled = true -- set to true by default
vim.api.nvim_create_user_command('ToggleAutoFormat', function()
vim.g.autoformat_enabled = not vim.g.autoformat_enabled
print('Autoformatting ' .. (vim.g.autoformat_enabled and 'enabled' or 'disabled'))
end, {})
vim.api.nvim_create_augroup("AutoFormat", {})
vim.api.nvim_create_autocmd("BufWritePre", {
group = "AutoFormat",
callback = function()
if vim.g.autoformat_enabled then
vim.lsp.buf.format({
async = false,
timeout_ms = 2000 -- Adjust timeout as needed
})
end
end,
})
-- Keymap -- Keymap
local opts = function(label) local opts = function(label)
return { noremap = true, silent = true, desc = label } return { noremap = true, silent = true, desc = label }
@ -179,6 +204,7 @@ vim.keymap.set("n", "<Leader>uc", function()
vim.cmd [[colorscheme dieter-nocolor]] vim.cmd [[colorscheme dieter-nocolor]]
end end
end, opts("Toggle Dieter colors")) end, opts("Toggle Dieter colors"))
vim.keymap.set("n", "<Leader>uf", "<cmd>ToggleAutoFormat<cr>", opts("Toggle autoformat on save"))
vim.keymap.set("n", "<Leader>uh", "<cmd>InlayHintsToggle<cr>", opts("Toggle inlay hints")) vim.keymap.set("n", "<Leader>uh", "<cmd>InlayHintsToggle<cr>", opts("Toggle inlay hints"))
vim.keymap.set("n", "<Leader>un", "<cmd>set invnumber<cr>", opts("Toggle line numbers")) vim.keymap.set("n", "<Leader>un", "<cmd>set invnumber<cr>", opts("Toggle line numbers"))
vim.keymap.set("n", "<Leader>uw", "<cmd>set invwrap<cr>", opts("Toggle line wrapping")) vim.keymap.set("n", "<Leader>uw", "<cmd>set invwrap<cr>", opts("Toggle line wrapping"))