efm-langserver icon indicating copy to clipboard operation
efm-langserver copied to clipboard

[Question] What is the main point of this language server?

Open dzintars opened this issue 2 years ago • 3 comments

Hi. From the Readme I was not able to get why would i want to install this plugin. Setting up LSP for Neovim is not the easy task at all. Especially for newbies. There are a lot configuration to be done. There are a lot similar plugins floating around and it's hard to get sense which ones does not conflict with others and which ones is most suitable for particular use cases. Personally i am coming from nvim-lsp-installer, nvim-config and nvim-cmp side (trying to setup). As far as i understand, Neovim has built in LSP. Then there are bunch of LS to install by hand or to use something nvim-lsp-installer to automate it a bit. My question is, where in all this mess Efm-langserver stands? What problem does it solves? I understand what is language server. For example gopls is a "native" Go language server. Can Efm-langserver replace it and if so how it is better? Is Efm-langserver competitor of nvim-lsp-installer or kind?

This issue could be in Discussions, but unfortunately Discussions is not enabled.

dzintars avatar Dec 23 '21 12:12 dzintars

Ciao.

this is not a plugin.

This is a language server that allows executabels (like prettier, eslint, shellcheck, and much more) to talk with through LSP.

so, in this mess, EFM does NOT replace gopls, but stand alongside with it.

IF gopls has a formatter and a linter already in the server, then, you probably don't need EFM.

But there are language servers, like the typescript one that do provide their formatters and linters, but there are better tools doing this job (eslint, prettier, etc) which do NOT have a language server, and therefore EFM is there to fix this gap, enabling neovim to speak to eslint, prettier, etc.

EFM is not hard to configure at all, you can try with my example:

https://github.com/lucax88x/configs/blob/5f61c4d2e69c9adef9af1a97072c1fb34d94aef1/dotfiles/.config/nvim/lua/lt/lsp/servers/efm.lua

You can use this repository https://github.com/creativenull/efmls-configs-nvim.

lucax88x avatar Dec 23 '21 15:12 lucax88x

https://github.com/lucax88x/configs/blob/master/dotfiles/.config/nvim/lua/lt/lsp/servers/efm.lua

@lucax88x The link doesn't work. I just checked configs/dotfiles/.config/nvim/lua/lt/lsp/servers/ and found only jsonls.lua, sumneko_lua.lua, tsserver.lua, yamlls.lua. Could you please update it so we could check it out? Or have you not used efm anymore?

kohane27 avatar Apr 28 '22 08:04 kohane27

Yeah, moved to null-ls.

I have updated the link with the deleted latest efm config so you can try it out, does it work?

lucax88x avatar Apr 28 '22 08:04 lucax88x

@lucax88x so is efm just like null-ls? Im here after null-ls was deprecated trying to figure out how best to add a bunch of linters/formatters. Why did you swtich to null-ls?

9mm avatar Sep 05 '23 20:09 9mm

@lucax88x so is efm just like null-ls? Im here after null-ls was deprecated trying to figure out how best to add a bunch of linters/formatters. Why did you swtich to null-ls?

There was a time when everybody moved from efm to null-ls.. when null-ls was released, but that was 1 year ago.

Now the opposite is happening.. but I'm still fine with null-ls for now.

lucax88x avatar Sep 05 '23 20:09 lucax88x

Lol, do you know the reason? Did null-ls do something better that efm did not?

9mm avatar Sep 05 '23 20:09 9mm