CLI output is wonky
elydpg opened this issue ยท 14 comments
That's interesting! I thought that Powershell supported ANSI escape sequences. I found this article, for example. It looks like that's new in Powershell 7, though, and I'm not sure if the library for colored text that we're using in Alda is smart enough to recognize that environment and emit the right escape codes.
Alda does support the standard NO_COLOR
environment variable, so you can remove those ANSI escape sequences by setting NO_COLOR
to anything (e.g. NO_COLOR=true
) in your environment variables. Can you give that a try?
I don't know of anything that we're doing in Alda that would behave differently there than other programs. Are there color theme settings that you can change, such that you can set them to the same color, e.g. black?
I mean, blue is the default colour of PowerShell... Seems odd that it should overwrite the colour in this way
Do other programs behave this way in PowerShell, too?
Not that I know of. Alda 1 doesn't have this problem.
That's interesting! I wonder if this might be a peculiarity of Go.
alda-player
isn't written in Go. Can you try running alda-player info
and tell me if it has the same problem?
OK, interesting.
My suspicion is that one of the Go libraries that we're using in the client is doing something strange. I don't have much bandwidth to devote to looking into this, but if a contributor felt like tackling this (or at least investigating further), it would be very much appreciated!
Hi, I'd be willing to look into this!
I'm guessing the issue to be with the readline part, I changed the color library to "github.com/grookit/color" and managed to fix those ANSI escape characters printing out... but when the readline part starts the problems persists, and the background changes.
And I tried running readline separately and still the issue persisted even on a new project. so I'm guessing the issue is with the readline (we might need to configure it because they did mention it works on PowerShell)... ill look more into it till then
Am I allowed to use a different library instead of readline?
I answered you on Slack already, but for visibility here:
- Changing libraries is definitely an option.
- Changing the
log.SetOutput(...)
part could be an issue. I think I added that part to make sure that log messages don't interfere with inputting lines in the REPL. So whatever library we switch to, we should just make sure that log messages don't interfere with the REPL experience. - If you could make a PR, I'll be happy to test on Linux!