irb icon indicating copy to clipboard operation
irb copied to clipboard

With `irb --noreadline --nomultiline` there is an unnecessary newline before each prompt

Open frou opened this issue 1 year ago • 1 comments

Description

When running irb with the flags --noreadline --nomultiline, there is an unnecessary additional newline before each prompt, including the initial prompt.

I originally noticed this in Emacs (the inf-ruby package runs irb with those flags), but I can also reproduce it in a normal terminal with no Emacs involved. As shown in this screenshot:

Screenshot 2024-08-18 at 13 04 04

The next screenshot shows it working as expected (when not using that combination of flags): Screenshot 2024-08-18 at 13 05 04

Result of irb_info

irb(main):001> irb_info
Ruby version: 3.3.4
IRB version: irb 1.14.0 (2024-07-06)
InputMethod: StdioInputMethod
Completion: off
RUBY_PLATFORM: x86_64-darwin21
LANG env: en_GB.UTF-8
East Asian Ambiguous Width: 1

Terminal Emulator

iTerm2 v3.5.4

Setting Files

Are you using ~/.irbrc and ~/.inputrc?

No

frou avatar Aug 18 '24 12:08 frou

Related to https://github.com/ruby/irb/pull/943

tompng avatar Aug 18 '24 19:08 tompng

Maybe a temporary fix could be to not do the puts if the INSIDE_EMACS environment variable is defined.

frou avatar Oct 07 '24 10:10 frou

That's definitely an option. @tompng ?

I think we need to do something. #907 was aimed at making the behavior more regular, needing fewer workarounds.

But because of the "test workaround", the latest Irb has been strictly worse in Emacs for the last 6 months, spanning 2 minor versions and 4 patch releases.

dgutov avatar Oct 07 '24 17:10 dgutov