diff --git a/lua/config/autocmds.lua b/lua/config/autocmds.lua index 23ae0231b6816dbc30972471ec884c370e903cf9..59e1ac10cb91cba2310802fc19faa4819d09184b 100644 --- a/lua/config/autocmds.lua +++ b/lua/config/autocmds.lua @@ -1,5 +1,3 @@ -vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]] - -- [[ Highlight on yank ]] -- See `:help vim.highlight.on_yank()` local highlight_group = vim.api.nvim_create_augroup('YankHighlight', { clear = true }) @@ -16,6 +14,23 @@ vim.api.nvim_create_autocmd('TextYankPost', { pattern = '*', }) +vim.api.nvim_create_autocmd('LspAttach', { + callback = function(args) + local client = vim.lsp.get_client_by_id(args.data.client_id) + if not client then return end + + --@diagnostic disable-next-line: missing-parameter + if client.supports_method('textDocument/formatting') then + vim.api.nvim_create_autocmd('BufWritePre', { + buffer = args.buf, + callback = function() + vim.lsp.buf.format({ bufnr = args.buf, id = client.id }) + end + }) + end + end +}) + local function set_filetype(pattern, filetype) vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { pattern = pattern,