From def684508cb35320b78e5761a82402deee146576 Mon Sep 17 00:00:00 2001 From: tomoya ishida Date: Wed, 27 Nov 2024 02:50:24 +0900 Subject: [PATCH] [ruby/irb] Fix indentation of xstring literal (https://github.com/ruby/irb/pull/1038) Fixes indent calculation of this input ``` if false p `ls` end ``` https://github.com/ruby/irb/commit/4217a46f5d --- lib/irb/nesting_parser.rb | 2 +- test/irb/test_nesting_parser.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/irb/nesting_parser.rb b/lib/irb/nesting_parser.rb index fc71d64aee..c1c9a5cc76 100644 --- a/lib/irb/nesting_parser.rb +++ b/lib/irb/nesting_parser.rb @@ -159,7 +159,7 @@ module IRB when :on_heredoc_end opens.pop when :on_backtick - opens << [t, nil] if t.state.allbits?(Ripper::EXPR_BEG) + opens << [t, nil] unless t.state == Ripper::EXPR_ARG when :on_tstring_beg, :on_words_beg, :on_qwords_beg, :on_symbols_beg, :on_qsymbols_beg, :on_regexp_beg opens << [t, nil] when :on_tstring_end, :on_regexp_end, :on_label_end diff --git a/test/irb/test_nesting_parser.rb b/test/irb/test_nesting_parser.rb index 2db3cdab57..6b4f54ee21 100644 --- a/test/irb/test_nesting_parser.rb +++ b/test/irb/test_nesting_parser.rb @@ -59,6 +59,7 @@ module TestIRB def f() = 1 %(); %w[]; %q(); %r{}; %i[] "#{1}"; ''; /#{1}/; `#{1}` + p(``); p ``; p x: ``; p 1, ``; :sym; :"sym"; :+; :`; :if [1, 2, 3] { x: 1, y: 2 }