Hi folks I’ve run into an issue after upgrading to
1.17.1
for Mint. I don’t have a reproducible code yet, but I decided to ask in hopes that someone here has an idea
This callback is only called once when the workspace is created: mint/src/ls/server.cr at master · mint-lang/mint · GitHub resulting in diagnostics not being pushed to the client when files change (works fine in 1.16.3
).
Here are some information which I think might be relevant:
- The language server is tapping into
STDIN
andSTDOUT
and reading messages in a loop: mint/src/ls/server.cr at master · mint-lang/mint · GitHub - There is a file watcher which is checking changes in files which is running in a fiber: mint/src/utils/watcher.cr at master · mint-lang/mint · GitHub
- Reading from
STDIN
and writing toSTDOUT
works because I can check in the LS client logs and other LS related functionality works. - When a file changes in the client, then we update the cache and send diagnostics if there are errors (this is the part that doesn’t work).
These are the steps to reproduce:
- Create a project
mint init
(once). - Set up the language server in your editor to use the local to be built binary (once).
- Build Mint from source.
- Open
Main.mint
in your editor and change something, so an error diagnostic is published. - If the error appears in the editor, it’s good, if it’s not, it’s bad.
This is what I found out after asking in Discord and then building Crystal from source and then building Mint with that:
- This is the commit which seems to break it Allow `LLVM_VERSION` override inside `Makefile` (#15765) · crystal-lang/crystal@8b71775 · GitHub , but it seems unrelated.
1.16.3
and the previous commit doesn’t have the issue.- This commit after
1.17.1
Fix typo in `Object` docs (#16035) · crystal-lang/crystal@7dd837b · GitHub still have the issue - The next commit Deprecate the `blocking` parameter of `File`, `Socket` and `IO::FileD… · crystal-lang/crystal@2b85244 · GitHub doesn’t have the issue
- Build · mint-lang/mint@2bd13e9 · GitHub Mint 0.26.0 doesn’t have the issue (built with
1.16.3
) - Build · mint-lang/mint@3cb5093 · GitHub Mint
master
have the issue (built with1.17.1
)
If anyone could verify my results would be great! I only tested the Linux versions, both statically built ones from GitHub actions and locally built ones.
Here is a video of it in action: Watch simplescreenrecorder-2025-08-13_21.32.28 | Streamable