awesome-gocui / gocui

Minimalist Go package aimed at creating Console User Interfaces.
BSD 3-Clause "New" or "Revised" License
350 stars 39 forks source link

[BUG] MinGW compatibility #43

Open hgtok opened 5 years ago

hgtok commented 5 years ago

Describe the bug Unable to render UI when running in a MinGW environment

To Reproduce

Expected behavior Console UI is shown

Screenshots Attached in reproduce

Environment (please complete the following information):

Additional context NA

mjarkk commented 5 years ago

I don't think we can make this possible in the current state of gocui due to the underlying library Termbox-Go,

But... we are thinking about moving to another underlying library to be more further prove because Termbox-Go in not maintained and we have a lot of other small issues that are not solvable due to the use of Termbox-Go.
I can't say if this will happen and if so when because it's just brought up and the changes it requires in gocui will certainly change a lot of the internal code and thus gocui might not be gocui anymore after moving to another underlying library.

Edit:
Just read somethings but cygwin what i assume MinGW is based on but it seems like it's hard for TUI libraries to add support for this. tcell the library we might use has a note in the readme that they don't support this at the moment so even if we would move to another library this still isn't possible but they seems to have some issues and PRs related to supporting cygwin so it might be possible in the further.

hgtok commented 5 years ago

Found a workaround for git-bug: winpty git bug termui

But not sure what is the correct syntax for it to work in jsonui due to stdin piping Tried cat test.json | winpty -Xallow-non-tty ./jsonui_windows_amd64.exe which resulted in

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Assertion failed!

Program: C:\Program Files\Git\usr\bin\winpty.exe
File: src/libwinpty/winpty.cc, Line 924

Expression: ASSERT_CONDITION("wp != nullptr && cols > 0 && rows > 0")
mjarkk commented 5 years ago

Ya that's a winpty bug
Due to the age of the issue this seems like something that won't be fixed very soon.