-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
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
Very poor performance with Haskell files #5467
Comments
It looks like the server hasn't finished initializing. |
@kirawi Yes, but the same happens even if I wait for it to end initializing. |
The whole point of providing logs is to help us debug your issue by looking at what's happening during your problem. If you're not taking the logs while the problem is happening, you're just giving us a random text file. |
Are you building helix from source? Make sure you're building in release mode. Is there a previous commit version where it works fine? Or maybe a previous haskell lsp version? |
@dead10ck Sorry, I didn't mean to provide a misleading log file. It's just that the same thing happens even if I wait. Here's a log taken well after the inizialization ended, same edit on the same file: 14 seconds from the change to the error diagnostics.
@archseer I'm building from source with A thing I failed to notice yesterday is that the old version of the language server fails to start completely, and that's because I also updated the project's GHC version. I'm going to try some more tests to see if I can isolate the issue and maybe create a reproducible case. Thanks! |
It's a little hard to tell for sure, but I'm seeing change notices being sent before more progress messages. Are you sure it was done initializing? Or does it send those progress notices every time you write a change? |
@dead10ck Yeah, I'm sure it was done. I had a feeling it was somehow incorrectly reinitializing at every change, but I wasn't sure. I think this might be the issue |
Related issue from haskell-language-server repo: |
An important note from haskell/haskell-language-server#3458 is that apparently HLS has changed behavior for editors that don't support changed file notifications. Does Helix support that? For more info, see haskell/haskell-language-server#3458 (comment) |
We don't support that yet: #2653 Seems like haskell/haskell-language-server#3452 should help though and there was a regression in GHC 9.4? |
Yea, the comment above links to that PR and I'm using that locally for now. Things do seem much better! |
I have been using #2653 all day long and it seems to be working perfectly so far. |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Summary
Hi!
I can't use helix with my haskell project anymore.
There are a couple of issues that I'm experiencing:
When I make a change the diagnostics are updated after several seconds. From the logs you can see that 26 seconds pass between the code change and the error diagnostics showing up.
When this happens, saving the file is delayed by several seconds if it even happens. Often I just have to wait for the LSP to be done and then save it again. Sometimes I get a red "Async operation failed" message or something similar flashing briefly in the status bar.
This wasn't happening before. The problem is that the issue persists even if I go back to older commits (when I know it was working fine). Removing my config.toml and languages.toml files doesn't change anything.
I'm pretty sure it's not a language server issue, as I can open the same file in emacs or vscode, make the same exact changes to the file and have near instant feedback.
I think this happens with haskell only, and only with projects that are over a certain size.
Anything I can try to figure this out or to give you more info?
Thank you!
Reproduction Steps
No response
Helix log
~/.cache/helix/helix.log
Platform
Linux
Terminal Emulator
kitty 0.26.5
Helix Version
22.12-108-g77860bdb
The text was updated successfully, but these errors were encountered: