Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign upCreate Dhall language server #312
Comments
Gabriel439
added
the
help wanted
label
Dec 2, 2018
This comment has been minimized.
This comment has been minimized.
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 |
Kinrany
referenced this issue
Jan 18, 2019
Open
Discussion: transpile dhall to other languages in both directions? #346
This comment has been minimized.
This comment has been minimized.
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. |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon: Yeah, go for it! |
This comment has been minimized.
This comment has been minimized.
|
In the meantime, here’s a minimal flycheck plugin for emacs that kind of works: https://github.com/Profpatsch/dhall-flycheck |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Feb 14, 2019
|
Hi, as soon as I said that "I have some spare time" suddenly it disappeared, as usual :) |
This comment has been minimized.
This comment has been minimized.
|
@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 Whenever you are ready to release I can also help set up CI to automatically build downloadable executables that people can use. |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon Do you handle caching imports in-memory? That’s the thing I stumbled over with |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Feb 19, 2019
|
@Profpatsch I'm not there yet. At this stage I just want to make sure that users will get diagnostic errors on file save, nothing will blow apart and users get more or less straitforward way to build/install the lsp server. I'll create an issue for the import caching, and add |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon: Right now I'm writing up a Google Summer of Code project idea (see: haskell-org/summer-of-haskell#90) for a student to work on a Dhall language server, preferably building on what you have done so far. Would you be interested in co-mentoring a student on this project with me? |
This comment has been minimized.
This comment has been minimized.
|
Here is the Google Summer of Code project sketch for reference: haskell-org/summer-of-haskell#103 |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon I found a way to cache remote files in-memory, upgrading Though I haven’t integrated it into the emacs source yet, The support was already there, all I did was push an initial cache to |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Feb 24, 2019
|
@Gabriel439 Well, I can provide a technical help for the student. I'm less confident in evaluating work, setting deadlines, etc... |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Feb 24, 2019
|
Thank you @Profpatsch this is really good work!!! I think I'll add some timeout setting and/or command to flush remote caches. Also for local files from a same workspace cache invalidation should be quite straightforward. |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon: Then I can go ahead and take care of mentoring the student. All I need is some time to familiarize myself with the codebase before the project begins |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Mar 2, 2019
|
@Gabriel439 I have pushed extension to the VSCode Marketplace. |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon: Awesome! Thank you so much for doing this |
This comment has been minimized.
This comment has been minimized.
|
@PanAeon: Would it be possible to merge https://github.com/PanAeon/dhall-lsp-server as a subproject of https://github.com/dhall-lang/dhall-haskell? The main reasons I ask are:
|
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Mar 6, 2019
|
Well, I think it's success, for me at least. :) I'll try to do this in the next couple of days. |
This comment has been minimized.
This comment has been minimized.
PanAeon
commented
Mar 6, 2019
•
|
This is the pull request dhall-lang/dhall-haskell#843 I had to change resolver for Appveyor to |
This comment has been minimized.
This comment has been minimized.
|
I'll mark this as closed by dhall-lang/dhall-haskell#843 There will probably be more feature we could potentially add, but those can be tracked in follow-up tickets for more specific requests @PanAeon: Thanks again for all your work on this! |

Gabriel439 commentedDec 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-langrepository and not thedhall-haskellrepository because this server might not necessarily be implemented in Haskell.