alda icon indicating copy to clipboard operation
alda copied to clipboard

CLI output is wonky

Open elydpg opened this issue 3 years ago • 14 comments

🐞 Bug report 🐞

Description

I'll let the below image speak for itself:

Screenshot (22)

Running the REPL causes PowerShell to recolour the screen in a weird way. Running this on cmd doesn't cause any recolouring, but you still get these ←[0m and ←[36m strings appearing.

elydpg avatar Oct 22 '21 04:10 elydpg

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?

daveyarwood avatar Oct 24 '21 15:10 daveyarwood

Screenshot (24)

Seems like it gets rid of the ←[0m like markings, but it doesn't get rid of the black recolouring of the screen...

elydpg avatar Oct 25 '21 19:10 elydpg

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?

daveyarwood avatar Oct 25 '21 19:10 daveyarwood

I mean, blue is the default colour of PowerShell... Seems odd that it should overwrite the colour in this way

elydpg avatar Oct 25 '21 20:10 elydpg

Do other programs behave this way in PowerShell, too?

daveyarwood avatar Oct 26 '21 13:10 daveyarwood

Not that I know of. Alda 1 doesn't have this problem.

elydpg avatar Oct 26 '21 17:10 elydpg

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?

daveyarwood avatar Oct 26 '21 17:10 daveyarwood

I wonder if this might be a peculiarity of Go.

Not sure. Running alda-player info and even alda --help don't seem to cause the same problem. Only with the repl it seems...

Screenshot (25) Screenshot (26)

elydpg avatar Oct 26 '21 21:10 elydpg

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!

daveyarwood avatar Oct 29 '21 13:10 daveyarwood

Hi, I'd be willing to look into this!

grasinski avatar Mar 20 '22 18:03 grasinski

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 image

KenP97 avatar May 13 '22 17:05 KenP97

Am I allowed to use a different library instead of readline?

KenP97 avatar May 16 '22 07:05 KenP97

image

KenP97 avatar May 16 '22 07:05 KenP97

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!

daveyarwood avatar May 16 '22 14:05 daveyarwood