diff --git a/lua/cosmic/lsp/init.lua b/lua/cosmic/lsp/init.lua index e028df6..6fc2f10 100644 --- a/lua/cosmic/lsp/init.lua +++ b/lua/cosmic/lsp/init.lua @@ -1,4 +1,3 @@ -local config = require('cosmic.config') require('cosmic.lsp.providers') require('cosmic.lsp.diagnostics').init() @@ -7,8 +6,3 @@ vim.lsp.handlers['textDocument/hover'] = vim.lsp.with(vim.lsp.handlers.hover, { border = 'single', }) -if config.lsp and config.lsp.format_on_save then - vim.cmd([[ - autocmd BufWritePre * lua vim.lsp.buf.formatting() - ]]) -end diff --git a/lua/cosmic/lsp/providers/defaults.lua b/lua/cosmic/lsp/providers/defaults.lua index 7b46185..7123f7a 100644 --- a/lua/cosmic/lsp/providers/defaults.lua +++ b/lua/cosmic/lsp/providers/defaults.lua @@ -1,3 +1,4 @@ +local config = require('cosmic.config') local M = {} function M.on_attach(client, bufnr) @@ -12,6 +13,12 @@ function M.on_attach(client, bufnr) if vim.tbl_contains(formatting_servers, client.name) then client.resolved_capabilities.document_formatting = true client.resolved_capabilities.document_range_formatting = true + if config.lsp and config.lsp.format_on_save then + -- todo: don't run more than once + vim.cmd([[ + autocmd BufWritePre * lua vim.lsp.buf.formatting() + ]]) + end else client.resolved_capabilities.document_formatting = false client.resolved_capabilities.document_range_formatting = false diff --git a/lua/cosmic/lsp/providers/init.lua b/lua/cosmic/lsp/providers/init.lua index b9bc2df..72271ba 100644 --- a/lua/cosmic/lsp/providers/init.lua +++ b/lua/cosmic/lsp/providers/init.lua @@ -44,13 +44,11 @@ end -- go through requested_servers and ensure installation local lsp_installer_servers = require('nvim-lsp-installer.servers') -for server in pairs(requested_servers) do - local requested_server = requested_servers[server] - - local ok, serv = lsp_installer_servers.get_server(requested_server) +for _, requested_server in pairs(requested_servers) do + local ok, server = lsp_installer_servers.get_server(requested_server) if ok then - if not serv:is_installed() then - serv:install() + if not server:is_installed() then + server:install() end end end