bump haskeline dependency to one that supports ANSI terminals#6147
Merged
bump haskeline dependency to one that supports ANSI terminals#6147
Conversation
Member
Author
|
I can't seem to get CI to pass, weeder is failing with a million errors only on the |
Member
Author
|
@aryairani Any ideas? I've never seen this before |
Member
Author
|
Nvm, restarted it enough times, apparently |
Member
Author
|
Oh, no, I see what's happening. It is succeeding in |
Member
Author
|
'k, merging in trunk seems like it did the trick |
Contributor
|
@mitchellwrosen I have some pending changes to CI that will hopefully improve a bunch of stuff, but there are still loose ends the current draft also disables weeder but only because I don't understand what's going on with it |
aryairani
approved these changes
Jan 29, 2026
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Overview
Partially addresses #6119
This PR swaps our
haskelinedependency to a different branch, where I've added support for ANSI terminals. Now we no longer fall back on the "dumb terminal" logic, which horizontally scrolls the input line when it becomes long, rather than rendering the input on multiple lines.I accomplished this by first extracting out an interface from the existing
terminfo-based implementation that doesn't depend onterminfo, then implementing a second instance of that interface using ANSI escape sequences instead, for moving the cursor around, clearing lines, etc.I say this "partially" addresses #6119 because although I think it really improves the status quo, the prompt still seems to behave kind of... weirdly. I've seen it kind of get visually out of sync, where my cursor isn't where it appears to be, when moving around the wrapped line threshold, either by left/right arrow keys, or backspace. I observed the exact same behavior with the
terminfobackend, so I think the logic in haskeline just kind of sucks and is woefully behind other languages' repl libraries in functionality and polish.Test coverage
I tested this change manually and it seems to work