From 02d2f4066e0a3425d3a37269adb658046ff736f3 Mon Sep 17 00:00:00 2001 From: Patrick Auernig Date: Sat, 6 Jan 2024 23:51:54 +0100 Subject: [PATCH] Add back format on save functionality --- lua/valeth/plugins/formatting.lua | 39 +++++++++++++++++++++++++++++++ lua/valeth/plugins/lsp.lua | 7 +----- 2 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 lua/valeth/plugins/formatting.lua diff --git a/lua/valeth/plugins/formatting.lua b/lua/valeth/plugins/formatting.lua new file mode 100644 index 0000000..a0117ba --- /dev/null +++ b/lua/valeth/plugins/formatting.lua @@ -0,0 +1,39 @@ +local autocmd = vim.api.nvim_create_autocmd +local autogroup = vim.api.nvim_create_augroup + +local spec = { + "mhartington/formatter.nvim", +} + +spec.config = function() + local formatter = require("formatter") + + formatter.setup({ + filetype = { + c = { + require("formatter.filetypes.c").clangformat + }, + } + }) +end + +local function format_file() + local bufnr = vim.api.nvim_get_current_buf() + local lsp_client = vim.lsp.get_active_clients({ bufnr = bufnr }) + + if #lsp_client ~= 0 then + vim.lsp.buf.format({ async = false, timeout_ms = 5000 }) + else + vim.cmd(":FormatWrite") + end +end + +vim.keymap.set("n", "fmt", format_file) + +-- Format on save +autocmd("BufWritePost", { + group = autogroup("FormatOnSave", {}), + callback = format_file, +}) + +return spec diff --git a/lua/valeth/plugins/lsp.lua b/lua/valeth/plugins/lsp.lua index 7e09b4a..832d234 100644 --- a/lua/valeth/plugins/lsp.lua +++ b/lua/valeth/plugins/lsp.lua @@ -7,13 +7,12 @@ spec.dependencies = { "williamboman/mason-lspconfig.nvim", "nvim-telescope/telescope.nvim", "folke/neodev.nvim", - "mhartington/formatter.nvim", } spec.config = function() -- Give me fancy diagnostic signs vim.fn.sign_define("DiagnosticSignError ", { text = "✘" }) - vim.fn.sign_define("DiagnosticSignWarn" , { text = "▲" }) + vim.fn.sign_define("DiagnosticSignWarn", { text = "▲" }) vim.fn.sign_define("DiagnosticSignInfo ", { text = "»" }) vim.fn.sign_define("DiagnosticSignHint", { text = "⚑" }) @@ -59,10 +58,6 @@ spec.config = function() vim.keymap.set("n", "ci", vim.diagnostic.open_float, opts) vim.keymap.set("n", "re", vim.lsp.buf.rename, opts) vim.keymap.set({ "n", "i" }, "", vim.lsp.buf.signature_help, opts) - - vim.keymap.set("n", "fmt", function() - vim.lsp.buf.format({ async = false, timeout_ms = 5000 }) - end) end })