-
-
Notifications
You must be signed in to change notification settings - Fork 400
make hls speak websocket #4666
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
base: master
Are you sure you want to change the base?
make hls speak websocket #4666
Conversation
3dbefe0
to
bcddfda
Compare
Hey @soulomoon I would love to hear your opinion on a4ce2e8 which adds "syntactic" highlighting to the semantic tokens support... |
oh shoot. I might have messed up (need to split up that last commit in two) |
bcddfda
to
a4ce2e8
Compare
Good job, look promising @MangoIV |
@soulomoon yes I will have to, thank you :) |
a4ce2e8
to
e260ab7
Compare
Use the GHC AST and lsp semantic tokens to convince the language server to give highlighting even without any editor highlighting plugins.
This is the right thing to do because othewise it is not possible to create new ideStates in a single instance of the executable. This will be useful if the hls executable is supposed to talk to multiple clients and lives beyond a single client disconnecting.
Previously, when there was no shutdown message by a client and the client disconnected, resulting in the handlers to be GC'd the race that was supposed to free resources for the HieDB & co. would throw a hard error talking about the MVar being unreachable. We would like to instead finish gracefully because finishing the race as soon as the MVar was GC'd is the right thing to do anyway.
Use the GHC AST and lsp semantic tokens to convince the language server to give highlighting even without any editor highlighting plugins.
e260ab7
to
d022d04
Compare
ah there's something odd here with the hscenv of eval... somehow eval chokes on ghc 9.12 |
try it out in combination with https://github.com/MangoIV/hls-playground by running that with
npm run dev
and this withcabal run -f-cabal -f-dynamic exe:haskell-language-server -- -d ws