Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include installer for language servers #2152

Closed
n0s4 opened this issue Apr 17, 2022 · 7 comments
Closed

Include installer for language servers #2152

n0s4 opened this issue Apr 17, 2022 · 7 comments
Labels
A-plugin Area: Plugin system C-enhancement Category: Improvements R-wontfix Not planned: Won't fix

Comments

@n0s4
Copy link
Contributor

n0s4 commented Apr 17, 2022

I got this idea from a neovim plugin that handles the installation of language servers for you.

I understand this would be tricky to implement, but would help in making Helix more accessible to people coming from IDEs and would be a lot comfier than tracking down all the LS's yourself.

Suggestions

  • Have a command like $ hx --language install <language> or something, similar to grammars.
  • Have a popup when you open a new file type, letting you to install the LS for that language.
  • Have a UI for managing servers (like the nvim plugin). Accessed by :languages for example.

I'm most in favour of the latter option, built-in UI's are something that I like a lot about Helix.

@n0s4 n0s4 added the C-enhancement Category: Improvements label Apr 17, 2022
@claes
Copy link

claes commented Apr 17, 2022

An alternative approach could be to use language servers running in containers. Possible this would be easier to maintain. I found for example
https://github.com/lspcontainers

@archseer
Copy link
Member

There's a lot of different ways to install LSPs and these might even vary per platform. In some cases you install a distribution package, sometimes it's an npm package. Yet other times it's a binary you need to place in a system-specific location. This is doable when you have a scripting language available, but I'd like to avoid doing all of this in Rust.

Containers could be an option if there's a good set of containers available. It's still a bit tricky because you'd have to configure them to have access to the workspace files.

@domhel
Copy link

domhel commented Apr 18, 2022

As someone who never understood LSP installation until yesterday, an installer would've been nice, but not necessary.
What I needed was a clear noob-friendly tutorial in the getting started section, that just tells me that I need LSP's in order to work with programming languages and that I just need to install them mostly with pip/npm and confirm their installation with hx --health.
If such a tutorial is within the getting started or even the installation process, I don't think it will be a problem.

@kirawi kirawi added A-helix-term Area: Helix term improvements A-plugin Area: Plugin system and removed A-helix-term Area: Helix term improvements labels Apr 19, 2022
@n0s4
Copy link
Contributor Author

n0s4 commented Apr 20, 2022

There's a lot of different ways to install LSPs and these might even vary per platform. In some cases you install a distribution package, sometimes it's an npm package. Yet other times it's a binary you need to place in a system-specific location. This is doable when you have a scripting language available, but I'd like to avoid doing all of this in Rust.

I understand that it would be more of a chore in rust and - like a lot of features - a plugin would probably be made when plugin support is complete. I just think that built in LSP features is one of the outstanding strong points of Helix and managing it from within the editor would contribute to that.

Obviously it's not necessary. Just having good docs on how to do it yourself is enough but it would be a cool thing to see. I'm not a good enough programmer to judge the scale of how tricky it would be, nevermind actually implementing it myself so feel free to close the issue if you're sure it wouldn't be worth it.

@rosvall
Copy link

rosvall commented Apr 26, 2022

I might be in the minority, but I really don't like it when my text editor suddenly starts downloading, compiling, and running tons of code from all over the internet. It's one of the things that really irks me about neovim's lspconfig plugin, and one of the reasons that I'm using helix now.

Edit: Maybe not lspconfig, but some plugin in my neovim setup did do it.

@mjlbach
Copy link

mjlbach commented Apr 26, 2022

Lspconfig does none of those things...

@KelvinJPS
Copy link

This wiki page https://github.com/helix-editor/helix/wiki/How-to-install-the-default-language-servers should be in the helix docs website. And the installer could just run npm commands?. Or it could be just providing information, something like when you open a file, for example, of the extension C# it says. The language server for this language needs dotnet cli, and there is the omni-sharp website for more information.

@kirawi kirawi added the R-wontfix Not planned: Won't fix label May 8, 2023
@helix-editor helix-editor locked and limited conversation to collaborators Sep 11, 2023
@pascalkuthe pascalkuthe converted this issue into discussion #8245 Sep 11, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
A-plugin Area: Plugin system C-enhancement Category: Improvements R-wontfix Not planned: Won't fix
Projects
None yet
Development

No branches or pull requests

8 participants