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

Create Dhall language server #312

Open
Gabriel439 opened this Issue Dec 2, 2018 · 6 comments

Comments

Projects
None yet
4 participants
@Gabriel439
Copy link
Contributor

Gabriel439 commented Dec 2, 2018

The language server project allows languages to build a server that implement the language server protocol and get widespread support for every editor that implements the language server client. As a bonus, many languages have already library support for the language server protocol. Language server implementations are not an all-or-nothing proposition. You can implement subsets of functionality and gradually support more as time goes on.

Note that I'm opening this against the dhall-lang repository and not the dhall-haskell repository because this server might not necessarily be implemented in Haskell.

@jbmusso

This comment has been minimized.

Copy link

jbmusso commented Dec 12, 2018

On syntax highlighting. As of today it looks like this isn't yet supported at the language server level but must be handled by clients. There's an ongoing pull request Microsoft/vscode-languageserver-node#367
Related: Microsoft/language-server-protocol#513

@PanAeon

This comment has been minimized.

Copy link

PanAeon commented Jan 23, 2019

Hi, I'm interested in learning LSP protocol, and have some spare time at the moment. So if nobody is working on this at the moment I can pick it up.

@Gabriel439

This comment has been minimized.

Copy link
Contributor Author

Gabriel439 commented Jan 23, 2019

@PanAeon: Yeah, go for it!

@Profpatsch

This comment has been minimized.

Copy link
Member

Profpatsch commented Feb 6, 2019

In the meantime, here’s a minimal flycheck plugin for emacs that kind of works: https://github.com/Profpatsch/dhall-flycheck

@PanAeon

This comment has been minimized.

Copy link

PanAeon commented Feb 14, 2019

Hi, as soon as I said that "I have some spare time" suddenly it disappeared, as usual :)
In principle, I've got something usable at this point:
diagnostics
I'm deliberately using https://github.com/alanz/haskell-lsp for the server part, as we both can get existing functionality from it and contribute back to the project.
At this point I want to clean-up the code, and add syntax highlighting before going "public".
For now I suggest we support only latest released version of the language, and add multi version support as the need arise. Users would likely have to build/install a separate server executable for each version of dhall, which is a bit inconvinient in my opinion.

@Gabriel439

This comment has been minimized.

Copy link
Contributor Author

Gabriel439 commented Feb 15, 2019

@PanAeon: Very nice work! I'm really impressed

I also think it's fine to only support the latest version of the language. I expect newer versions to be reasonably backwards compatible with older versions, especially now that hashes are more stable. The main exception is when we occasionally remove language features after a long deprecation cycle (such as the constructors keyword).

Whenever you are ready to release I can also help set up CI to automatically build downloadable executables that people can use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment