Skip to content
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

difference with https://github.com/PMunch/nimlsp ? #2

Open
timotheecour opened this issue Dec 29, 2018 · 5 comments
Open

difference with https://github.com/PMunch/nimlsp ? #2

timotheecour opened this issue Dec 29, 2018 · 5 comments

Comments

@timotheecour
Copy link
Member

/cc @zah @PMunch
when should one use https://github.com/PMunch/nimlsp vs https://github.com/nim-lang/langserver ?

@zah
Copy link
Member

zah commented Dec 29, 2018

At the moment, there are some architectural differences between the two projects, but we will work towards creating a single implementation in the long run.

nimlsp is much more advanced at the moment, but it doesn't yet follow the suggested design that will be pursued in this project:

https://github.com/nim-lang/langserver/blob/master/docs/design/LangServArchitecture.md

@dom96
Copy link

dom96 commented Dec 29, 2018

That design matches what I had in my head for a while now. The Nim Language Server should just be a simple application that does two basic things (at first):

  • Passes requests to nimsuggest
  • Manages one or more nimsuggest instances to ensure they...
    • ...can handle requests efficiently
    • ...are not stuck leaking memory and/or overburdening the user's machine (I've often seen nimsuggest stuck at 100% CPU usage)

Further features can include:

  • the ability to send bug reports automatically when nimsuggest crashes or gives unsatisfactory results.
  • other auto completion providers that return results faster or as a fallback if nimsuggest fails (I often see language servers failing to find a symbol that can be easily found accurately with a simple search for "proc ident")

@timotheecour
Copy link
Member Author

ok so looks like both projects are actively underway, was hoping efforts could be consolidated

Further features can include:

see also PMunch/nimlsp#16 which lists other features in D's version of this, some of which are relevant for Nim

multiple long-running nimsuggest processes (one instance of nimsuggest per project) (from: https://github.com/nim-lang/langserver/blob/master/docs/design/LangServArchitecture.md)

nim-lang/Nim#9757 was trying to simplify that so we could have 1 nimsuggest instance that would work regardless if file was known in advance; it would still require more than 1 in case different compile options are give, though, or if a nimsuggest instance would crash (until these types of bugs are eradicated)

@your-diary
Copy link

Latest information in 2024?

@nickysn
Copy link
Collaborator

nickysn commented Feb 6, 2024

Here's the latest information in our readme, which mentions nimlsp in the "Related Projects" section: https://github.com/nim-lang/langserver?tab=readme-ov-file#related-projects
Note that I'm unfamiliar whether the information about nimlsp is accurate or not, because I haven't tried using it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants