From 453e599a57caddf1b40cb00e9a9a074912d56908 Mon Sep 17 00:00:00 2001 From: Roman Date: Mon, 29 Jun 2026 22:39:09 +0200 Subject: [PATCH] auto format --- nvim/.config/nvim/lua/romanzy/plugins/lsp.lua | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua b/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua index f55249d..4d06bb2 100644 --- a/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua +++ b/nvim/.config/nvim/lua/romanzy/plugins/lsp.lua @@ -18,6 +18,7 @@ local mason_lspconfig = require("mason-lspconfig") vim.opt.completeopt = { "menu", "menuone", "noselect", "popup", "fuzzy" } vim.opt.pumheight = 8 +local format_augroup = vim.api.nvim_create_augroup("RomanzyFormatOnSave", { clear = true }) local diag_inline_enabled = true local function diag_virtual_text() @@ -59,6 +60,26 @@ vim.api.nvim_create_autocmd("LspAttach", { end, }) +vim.api.nvim_create_autocmd("BufWritePre", { + group = format_augroup, + callback = function(ev) + local bufnr = ev.buf + + if not vim.bo[bufnr].modifiable or vim.bo[bufnr].buftype ~= "" then + return + end + + vim.lsp.buf.format({ + bufnr = bufnr, + async = false, + timeout_ms = 2000, + filter = function(client) + return client.supports_method("textDocument/formatting") + end, + }) + end, +}) + local capabilities = vim.lsp.protocol.make_client_capabilities() local managed_servers = { "bashls",