From 988ab6b58019854d3f2e79e7b718b7e35833d145 Mon Sep 17 00:00:00 2001
From: Matthew Leong <mattleong91@gmail.com>
Date: Mon, 9 Jan 2023 13:24:14 -0800
Subject: [PATCH] fix(lsp): set auto format on save autocmd to buffer

---
 lua/cosmic/lsp/providers/defaults.lua | 16 ++++++++--------
 lua/cosmic/utils/lsp.lua              |  4 ++--
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua
index d9b0670..de1a502 100644
--- a/lua/cosmic/lsp/providers/defaults.lua
+++ b/lua/cosmic/lsp/providers/defaults.lua
@@ -17,24 +17,24 @@ function M.on_attach(client, bufnr)
     vim.cmd(string.format("command! LspFormat lua require('cosmic.utils.lsp').format(%s)", bufnr))
 
     -- set up auto format on save
-    if user_config.lsp.format_on_save and user_config.lsp.can_client_format(client) then
+    if user_config.lsp.format_on_save then
       -- check user config to see if we can format on save
       -- collect filetype(s) from user config
-      local format_filetypes = ''
+      local filetype_pattern = ''
       if vim.tbl_islist(user_config.lsp.format_on_save) then
         for _, ft in pairs(user_config.lsp.format_on_save) do
-          format_filetypes = format_filetypes .. '*' .. ft
+          filetype_pattern = filetype_pattern .. '*' .. ft
         end
       else -- any filetype if none set
-        format_filetypes = '*'
+        filetype_pattern = '*'
       end
 
       -- autocommand for format on save with specified filetype(s)
-      vim.api.nvim_create_autocmd('BufWritePre', {
-        callback = function(evt)
-          require('cosmic.utils.lsp').format(evt.buf)
+      vim.api.nvim_create_autocmd(string.format('BufWritePre %s', filetype_pattern), {
+        callback = function()
+          require('cosmic.utils.lsp').format()
         end,
-        pattern = format_filetypes,
+        buffer = bufnr,
         group = group,
       })
     end
diff --git a/lua/cosmic/utils/lsp.lua b/lua/cosmic/utils/lsp.lua
index d5ad4ec..8c2c499 100644
--- a/lua/cosmic/utils/lsp.lua
+++ b/lua/cosmic/utils/lsp.lua
@@ -2,10 +2,10 @@ local user_config = require('cosmic.core.user')
 local M = {}
 
 -- format current buffer w/user settings
-function M.format(bufnr)
+function M.format()
   vim.lsp.buf.format({
     timeout_ms = user_config.lsp.format_timeout,
-    bufnr = bufnr or 0,
+    filter = user_config.lsp.can_client_format,
   })
 end