haskell / haskell/play-haskell
Proposal: make the editor bit of play.haskell.org use a haskell-language-server instance in the background
- Dominant language
- Haskell
- Stars
- 160
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
Hello Tom
I am currently working on getting HLS to work with fully in-memory buffers that do not need the file system to be able to have a single HLS instance communicate with multiple language server clients. I have reached the point where I have all relevant language server features working in a prototype-ish way and I would like to avoid scattering the ecosystem by creating another playground. Hence I would like to ask whether what I have built could be integrated into haskell playground.
- the language server would for now be a fork since I don't think that most of the feature will be mergeable upstream immediately
- a single language server instance takes about 1.5 GB RAM for ~30 active clients
- we probably need proper sandboxing, I don't know how haskell playground does this at the moment, but we probably need to talk about this
- the client is based on monaco, which is pretty big, so the download times would probably go up.
If you have any further questions, I would be happy to talk.
Here's a screenshot of how this looks atm - the missing syntax highlighting is due to not having any except the semantic highlighting atm. I could add syntax based highlighting client side but I'm also currently debating on just extending the range of supported tokens by HLS.
My e-mail address is contact@mangoiv.com
Contributor guide
Research direction
No repository files, tests, or entry points are named. Start by reviewing how the playground currently handles its editor, client/server communication, sandboxing, and resource limits, then compare those boundaries with the proposed in-memory HLS integration. Done would require an agreed design covering the fork, sandboxing, memory capacity, and Monaco client impact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend, devtools, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100