haskell / haskell/play-haskell

Proposal: make the editor bit of play.haskell.org use a haskell-language-server instance in the background

Open
#57 4 comments 0 reactions 0 assignees View on GitHub
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.

Image

My e-mail address is contact@mangoiv.com

Contributor guide

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.