JEG2 / highline

A higher level command-line oriented interface.
Other
1.29k stars 137 forks source link

Make Highline Ruby 3.3 and reline compatible #266

Closed abinoam closed 8 months ago

abinoam commented 8 months ago

With the release of Ruby 3.3, the ext/readline library has been deprecated in favor of reline, a Ruby-based implementation of readline.

This represents a significant milestone for HighLine, akin to the impact of the introduction of io/console. HighLine, being an established Ruby library, originally emerged at a time when tools facilitating console interaction and cross-platform compatibility were limited. HighLine addressed these challenges using a series of conditional (if/else) statements and workarounds.

The advent of io/console alleviated some of these complexities. Now, with reline, we anticipate further simplification and efficiency in handling console interactions.

This issue aims to initiate the process of transitioning HighLine's codebase to utilize reline. A key objective is to ensure HighLine remains compatible with other Ruby implementations, particularly JRuby.

For more details on the Ruby 3.3 release, please refer to: Ruby 3.3.0 Release Notes.

cc: @JEG2, @ayacabta, @nobu, @hsbt, @headius

abinoam commented 8 months ago

Solved #265