From 32f090182a72aa7b6e2009b612f1f2b1aabbd8b5 Mon Sep 17 00:00:00 2001
From: Vzaa <Vzaa@users.noreply.github.com>
Date: Wed, 24 Aug 2022 11:17:50 +0300
Subject: [PATCH] Don't pass args to vim.lsp.buf.format/formatting

Args passed by nvim_buf_create_user_command to the callback creates
errors with rust-analyzer on nvim 0.7.x and vim.lsp.buf.formatting.
---
 init.lua | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/init.lua b/init.lua
index 20f35d7..47a0abc 100644
--- a/init.lua
+++ b/init.lua
@@ -289,7 +289,13 @@ local on_attach = function(_, bufnr)
   end, '[W]orkspace [L]ist Folders')
 
   -- Create a command `:Format` local to the LSP buffer
-  vim.api.nvim_buf_create_user_command(bufnr, 'Format', vim.lsp.buf.format or vim.lsp.buf.formatting, { desc = 'Format current buffer with LSP' })
+  vim.api.nvim_buf_create_user_command(bufnr, 'Format', function(_)
+    if vim.lsp.buf.format then
+      vim.lsp.buf.format()
+    elseif vim.lsp.buf.formatting then
+      vim.lsp.buf.formatting()
+    end
+  end, { desc = 'Format current buffer with LSP' })
 end
 
 -- nvim-cmp supports additional completion capabilities