Palli
June 10, 2020, 2:12pm
14
Welcome to the community!
I noticed: GitHub - ronisbr/TextUserInterfaces.jl: Text user interfaces for Julia
in the thread here: Help to reduce very long compilation time
There’s also The Julia REPL · The Julia Language
and it was updated yesterday (so only on Julia 1.6 master/nightly). I’m no expert on this, what’s the state-of-the-art (library) in TUIs (for any language)? I believe on Linux ncurses is (almost) always used (and for the library above, so doesn’t work on Windows, except I guess in WSL; but is tested on macOS), while Julia, end thus the merged package works on all platforms. See other threads here, look for “TUI”, but also consider looking for “GUI”. I’m just not sure TUI is a very hot topic for any language.
committed 07:34AM - 09 Jun 20 UTC
This overhaul of the `AbstractMenu` extension interface of `REPL.TerminalMenus` … addresses several concerns:
- Printing the "paging" navigation indicators was handled by TerminalMenus, but the subtype methods were expected to print the cursor indicator and, for multiple-selection menus, the selection status indicators in a manner that preserved alignment. There was no obvious reason for the inconsistency.
- Printing these indicators relied on accessing a mutable private global variable in TerminalMenus. It was therefore not possible to use different settings simultaneously for two different menus (e.g. a main menu and its submenus).
- The API required that subtype methods supply a list of strings for each menu-option when really it only needed to know how many options were available. This was particularly problematic for large, dynamic menus whose options might change and for which lists of options would have to be reallocated regularly but were then thrown away after checking their length.
This deprecates the old interface in a backward-compatible manner, so is non-breaking.
I want to use TerminalMenus in some minimal GUI app I’m developing. I can either use the original author’s version , or the one included in Julia’s standard libraries (documented here ).
I think they’re both really similar, it seems like the original one is slightly outdated (found an issue and PRed a fix for it), but I just don’t know what the best practice is in this case.
If the standard library version should be used instead then we should add some depreciation-indication to the original one…
1 Like