From d4f1e232c49a45f65d0f6b21059a0041d60cfcd2 Mon Sep 17 00:00:00 2001 From: Matt Leong Date: Mon, 25 Oct 2021 16:44:53 -0700 Subject: [PATCH] feat(lsp): use autogroup for autocmd --- lua/cosmic/lsp/providers/defaults.lua | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 37bfd07..fd369db 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -1,7 +1,7 @@ local config = require('cosmic.config') local M = {} -local auto_format_lock = false; +local auto_format_lock = false function M.on_attach(client, bufnr) local function buf_set_option(...) @@ -18,14 +18,22 @@ function M.on_attach(client, bufnr) if config.lsp.format_on_save and not auto_format_lock then auto_format_lock = true -- just run autocommand once local format_filetypes = '' - if (vim.tbl_islist(config.lsp.format_on_save)) then + if vim.tbl_islist(config.lsp.format_on_save) then for _, ft in pairs(config.lsp.format_on_save) do format_filetypes = format_filetypes .. '*' .. ft end else format_filetypes = '*' end - vim.cmd(string.format('autocmd BufWritePre %s lua vim.lsp.buf.formatting_sync(nil, 200)', format_filetypes)) + vim.cmd(string.format( + [[ + augroup CosmicFormat + autocmd! + autocmd BufWritePre %s lua vim.lsp.buf.formatting_sync(nil, 200) + augroup end + ]], + format_filetypes + )) end else client.resolved_capabilities.document_formatting = false