mattn / efm-langserver

General purpose Language Server
MIT License
1.34k stars 61 forks source link

Set efm as preferred formatter or disable tsserver formatter when using efm. #218

Closed kaykhancheckpoint closed 2 years ago

kaykhancheckpoint commented 2 years ago

Hi friends i use efm (prettier +eslint) as a formatter/linter and i also use tsserver. When i go to format im given the option of formatting with efm or tsserver. Ofcourse i want to pick efm every time.

There is a section that suggests how to do this... https://github.com/neovim/nvim-lspconfig/wiki/Multiple-language-servers-FAQ

  1. However i always seem to get an error, seems like its not recognizing efm, any ideas why?

E5108: Error executing lua [string ":lua"]:57: attempt to index global 'lspconfig' (a nil value) stack traceback: [string ":lua"]:57: in main chunk

local servers = {'tsserver', 'efm'}
for _, server in ipairs(servers) do
  lspconfig[server].setup {
    on_attach = function(client, bufnr)
      if client.name ~= 'efm' then
        formatting_callback(client, bufnr)
      end
      on_attach(client, bufnr)
    end
  }
end
  1. To fix this in older versions ive just disabled formatting in tsserver, but this no longer works anymore either.
require'lspconfig'.tsserver.setup{
  on_attach = function(client)
    client.resolved_capabilities.document_formatting = false
    client.resolved_capabilities.document_range_formatting = false
  end,
}