From a351ad691bd00314959c96fdfc323b7f968daf10 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 13 Feb 2025 21:25:49 +0100 Subject: [PATCH] Check lsp client capabilties before formatting --- archlinux.yml | 6 +++++- templates/nvim/lua/lsp.lua.j2 | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/archlinux.yml b/archlinux.yml index 722ff76..109d1a8 100644 --- a/archlinux.yml +++ b/archlinux.yml @@ -18,7 +18,11 @@ - common tasks: - import_tasks: 'tasks/dotfiles.yml' - - import_tasks: 'tasks/neovim.yml' + + - name: Include neovim tasks + import_tasks: 'tasks/neovim.yml' + tags: neovim + - name: gather package facts package_facts: manager: pacman diff --git a/templates/nvim/lua/lsp.lua.j2 b/templates/nvim/lua/lsp.lua.j2 index ec1b85b..9d719ea 100644 --- a/templates/nvim/lua/lsp.lua.j2 +++ b/templates/nvim/lua/lsp.lua.j2 @@ -159,7 +159,6 @@ vim.diagnostic.config({ local enable_formatting = os.getenv("ENABLE_FORMATTING", False) --- TODO: fix error message: [LSP] Format request failed, no matching language servers. -- format buffers before saving for specific LSPs if (enable_formatting) then local excluded_clients = { 'pyright' } @@ -172,6 +171,7 @@ if (enable_formatting) then callback = function() vim.lsp.buf.format { filter = function(client) + if not client.supports_method('textDocument/formatting') then return end return not vim.list_contains(excluded_clients, client.name) end, async = false,