8000 Improve pasting long text by JuanitoFatas · Pull Request #242 · ruby/reline · GitHub
[go: up one dir, main page]

Skip to content

Improve pasting long text #242

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

JuanitoFatas
Copy link
Member
@JuanitoFatas JuanitoFatas commented Dec 29, 2020

I was trying to paste this long piece of text and play around new reline using Ruby 3.0.0 (reline 0.2.0) on macOS. Steps to reproduce:

irb
(type the following)
q = <<~Q
(enter)
(paste the following)
query {
  organization(slug: "test") {
    pipelines(last: 10) {
      edges {
        node {
          id
          name
          builds(createdAtFrom: "2020-01-01") {
            count
          }
          metrics {
            edges {
              node {
                label
                value
              }
            }
          }
        }
      }
    }
  }
}

irb crashed and exit(1) with various scenarios

  • When I pasted it, hit enter -> Fixed by 58e7f3e

    Backtrace
    ➜  ~ irb
    irb(main):001:0" q=<<~Q
    irb(main):002:0" query {
    irb(main):003:0"   organization(slug: "test") {
    irb(main):004:0"     pipelines(last: 10) {
    irb(main):005:0"       edges {
    irb(main):006:0"         node {
    irb(main):007:0"           id
    irb(main):008:0"           name
    irb(main):009:0"           builds(createdAtFrom: "2020-01-01") {
    irb(main):010:0"             count
    irb(main):011:0"           }
    irb(main):012:0"           metrics {
    irb(main):013:0"             edges {
    irb(main):014:0"               node {
    irb(main):015:0"                 label
    irb(main):016:0"                 value
    irb(main):017:0"               }
    irb(main):018:0"             }
    irb(main):019:0"           }
    irb(main):020:0"         }
    irb(main):021:0"       }
    irb(main):022:0"     }
    irb(main):023:0"   }
    irb(main):024:0" } /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:264:in `initialize': no implicit conversion of nil into String (TypeError)
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:264:in `new'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:264:in `insert_new_line'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1330:in `key_newline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1900:in `ed_newline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:951:in `call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:951:in `wrap_method_call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:998:in `block in process_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:922:in `run_for_operators'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:997:in `process_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1032:in `normal_char'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1078:in `input_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:247:in `block (3 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `each'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `block (2 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:330:in `block in read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:245:in `block in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:175:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/input-method.rb:302:in `gets'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:519:in `block (2 levels) in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:721:in `signal_status'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:518:in `block in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:202:in `lex'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:174:in `block (2 levels) in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `block in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:537:in `eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:472:in `block in run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:400:in `start'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `load'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `<main>'
    
  • When I pasted it, use or arrow keys ( or work fine) -> Fixed by 34d253d

    Backtrace
    ➜  ~ irb
    irb(main):001:0" q=<<~Q
    irb(main):002:0" query {
    irb(main):003:0"   organization(slug: "test") {
    irb(main):004:0"     pipelines(last: 10) {
    irb(main):005:0"       edges {
    irb(main):006:0"         node {
    irb(main):007:0"           id
    irb(main):008:0"           name
    irb(main):009:0"           builds(createdAtFrom: "2020-01-01") {
    irb(main):010:0"             count
    irb(main):011:0"           }
    irb(main):012:0"           metrics {
    irb(main):013:0"             edges {
    irb(main):014:0"               node {
    irb(main):015:0"                 label
    irb(main):016:0"                 value
    irb(main):017:0"               }
    irb(main):018:0"             }
    irb(main):019:0"           }
    irb(main):020:0"         }
    irb(main):021:0"       }
    irb(main):022:0"     }
    irb(main):023:0"   }
    irb(main):024:0" } /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/unicode.rb:105:in `ord': empty string (ArgumentError)
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/unicode.rb:105:in `get_mbchar_width'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1438:in `ed_prev_char'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:952:in `call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:952:in `wrap_method_call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:969:in `process_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1077:in `input_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:247:in `block (3 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `each'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `block (2 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:298:in `block in read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:245:in `block in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:175:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/input-method.rb:302:in `gets'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:519:in `block (2 levels) in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:721:in `signal_status'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:518:in `block in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:202:in `lex'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:174:in `block (2 levels) in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `block in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:537:in `eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:472:in `block in run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:400:in `start'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `load'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `<main>'
    
  • When I pasted it, use ← Backspace

    The problem with this is that pasted text added an extra space which the line is just "}" (irb 024 below), so the calculation went wrong.

    スクリーンショット 2020-12-30 11 08 12
    Backtrace
    ➜  ~ irb
    irb(main):001:0" q=<<~Q
    irb(main):002:0" query {
    irb(main):003:0"   organization(slug: "test") {
    irb(main):004:0"     pipelines(last: 10) {
    irb(main):005:0"       edges {
    irb(main):006:0"         node {
    irb(main):007:0"           id
    irb(main):008:0"           name
    irb(main):009:0"           builds(createdAtFrom: "2020-01-01") {
    irb(main):010:0"             count
    irb(main):011:0"           }
    irb(main):012:0"           metrics {
    irb(main):013:0"             edges {
    irb(main):014:0"               node {
    irb(main):015:0"                 label
    irb(main):016:0"                 value
    irb(main):017:0"               }
    irb(main):018:0"             }
    irb(main):019:0"           }
    irb(main):020:0"         }
    irb(main):021:0"       }
    irb(main):022:0"     }
    irb(main):023:0"   }
    irb(main):024:0" } /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1303:in `byteslice!': no implicit conversion of nil into String (TypeError)
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1932:in `em_delete_prev_char'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:952:in `call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:952:in `wrap_method_call'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:999:in `block in process_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:923:in `run_for_operators'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:998:in `process_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1033:in `normal_char'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline/line_editor.rb:1079:in `input_key'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:247:in `block (3 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `each'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:246:in `block (2 levels) in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:330:in `block in read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:284:in `read_io'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:245:in `block in inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:243:in `inner_readline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/reline.rb:175:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `readmultiline'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/input-method.rb:302:in `gets'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:519:in `block (2 levels) in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:721:in `signal_status'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:518:in `block in eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:202:in `lex'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:174:in `block (2 levels) in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `loop'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:171:in `block in each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb/ruby-lex.rb:170:in `each_top_level_statement'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:537:in `eval_input'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:472:in `block in run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `catch'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:471:in `run'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/3.0.0/irb.rb:400:in `start'
      from /Users/hhh/.rubies/3.0.0/lib/ruby/gems/3.0.0/gems/irb-1.3.0/exe/irb:11:in `<top (required)>'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `load'
      from /Users/hhh/.gem/ruby/3.0.0/bin/irb:23:in `<main>'
    

I would love some tips on improving these and adding tests for these. Thanks.

Feel free to push changes to this branch if you want.

irb

q=<<~Q
(enter)
(paste)
query {
  organization(slug: "test") {
    pipelines(last: 10) {
      edges {
        node {
          id
          name
          builds(createdAtFrom: "2020-01-01") {
            count
          }
          metrics {
            edges {
              node {
                label
                value
              }
            }
          }
        }
      }
    }
  }
}

Then this line fail
irb
q = <<~Q
(enter)
(paste)
query {
  organization(slug: "test") {
    pipelines(last: 10) {
      edges {
        node {
          id
          name
          builds(createdAtFrom: "2020-01-01") {
            count
          }
          metrics {
            edges {
              node {
                label
                value
              }
            }
          }
        }
      }
    }
  }
}
(left)

Then this line fail.
@JuanitoFatas JuanitoFatas changed the title Improve long paste Improve pasting long text Dec 29, 2020
@JuanitoFatas
Copy link
Member Author

@aycabta I dont know how to fix the delete character issue in this PR, could you take a look? 🙏 Thank you!

@aycabta
Copy link
Member
aycabta commented Dec 31, 2020

Thank you for your reporting. For now, I created a minimal reproduction code.

q = <<~Q
(enter)
(paste the following)
{
  #
}

I'll look into it in detail.

@JuanitoFatas
Copy link
Member Author

@aycabta Thank you. It is not urgent. Can wait after the new year when you have time.

aycabta added a commit to aycabta/irb that referenced this pull request Jan 1, 2021
Use the start token as the indentation criteria so that it works properly in
heredoc.

ref. ruby/reline#242
aycabta added a commit to aycabta/irb that referenced this pull request Jan 2, 2021
matzbot pushed a commit to ruby/ruby that referenced this pull request Jan 5, 2021
Use the start token as the indentation criteria so that it works properly in
heredoc.

ref. ruby/reline#242

ruby/irb@9704808dfd
@aycabta
Copy link
Member
aycabta commented Jan 5, 2021

This problem was caused by a number of bugs in IRB and Reline. First, IRB was returning broken information by callbacks, and it's fixed by ruby/irb#161 and ruby/irb#163. Second, Reline was crashing when takes broken information from callbacks, and it's fixed by #244.

I believe your reporting was very important and your research has been extremely helpful in clarifying the issue. I added you to co-author to commits of #244. Thank you so much!

@aycabta aycabta closed this Jan 5, 2021
@JuanitoFatas JuanitoFatas deleted the improve-long-paste branch January 6, 2021 06:46
aycabta added a commit to aycabta/ruby that referenced this pull request Jan 17, 2021
Use the start token as the indentation criteria so that it works properly in
heredoc.

ref. ruby/reline#242

ruby/irb@9704808dfd
nurse pushed a commit to ruby/ruby that referenced this pull request Jan 19, 2021
* Get rid of inconsistent dll linkages against vcpkg readline

* [ruby/irb] Enhance colored inspect output

ruby/irb@dffcdb5269

* [ruby/irb] Add color_printer.rb to gemspec

ruby/irb@b4df0fd8b2

* [ruby/irb] Fix failing tests

ruby/irb@7723ade899

* irb: add more syntax errors colorizing support (#3967)

* [ruby/irb] Do not colorize partially-correct inspect

This is to prevent a yellow-mixed output for ActiveSupport::TimeWithZone.

Follows up ruby/irb#159 and #3967.

ruby/irb@a5804c3

* [ruby/irb] Remove unnecessary ignore_error in dispatch_seq

Just forgotten in ruby/irb@a5804c3

ruby/irb@e42e548793

* Increase timeout for reline with --jit-wait

for failures like:
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-130509
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201229-165132
http://ci.rvm.jp/logfiles/brlog.trunk-mjit-wait.20201228-015519

* [ruby/irb] Stringify when a non-object is passed to PP#text

If a nested object is passed to #pp, it may be sometimes passed to the #text
method as an object without being stringified.

This is fixed on the Ruby main repository;
433a3be
but it was a bug of Ripper so still needs this workaround for using irb
as a gem on Ruby 3.0.0 or earlier.

Co-authored-by: k0kubun <takashikkbn@gmail.com>

ruby/irb@8d13df22ee

* [ruby/irb] Newline in oneliner def doesn't reset indent

This closes ruby/irb#132.

ruby/irb@43456dcf5e

* [ruby/irb] Escape invalid byte sequence in Exception

This fixes ruby/irb#141.

ruby/irb@0815317d42

* [ruby/irb] Handle indentations related to keyword "do" correctly

This fixes ruby/irb#158.

ruby/irb@964643400b

* [ruby/irb] Heredoc may contain multiple newlines in a single token

Use the start token as the indentation criteria so that it works properly in
heredoc.

ref. ruby/reline#242

ruby/irb@9704808dfd

* [ruby/irb] Use Ripper::Lexer#scan to take broken tokens

ref. ruby/reline#242

ruby/irb@54f90cb6c9

* [ruby/irb] Use error tokens if there are no correct tokens in the same place

For example, the broken code "%www" will result in only one error token.

ruby/irb@9fa39a7cf3

* [ruby/irb] Ensure to restore $VERBOSE

ruby/irb@cef474a76a

* 600x larger timeout for Reline

I didn't notice it's msec. 2.5s is too short.
http://ci.rvm.jp/results/trunk-mjit-wait@phosphorus-docker/3311385

* [ruby/irb] fix typo in `IRB::Irb#convert_invalid_byte_sequence`

ruby/irb@d09d3c3d68

* [ruby/irb] do not escape a predicate method for doc namespace

* Fixes #88

ruby/irb@d431a30af4

* [ruby/irb] refactoring an error handling in `IRB::Inspector`

* moved rescue clause to `#inspect_value` to catch all failures in inspectors
* test with all (currently five kind of) inspect modes
  - tweaked the input due to only `Marshal` can inspect(dump) a `BasicObject`

ruby/irb@9d112fab8e

* [ruby/irb] Use Exception#full_message to show backtrace in the correct order

[Bug #17466]

ruby/irb@1c76845cca

* [ruby/irb] Fix BACK_TRACE_LIMIT logic

ruby/irb@30dc5d43fe

* irb: Drop lines from backtrace for tests in Ruby repository

* [ruby/reline] Update cursor correctly when just cursor moving

This fixes ruby/reline#236 and ruby/reline#239.

ruby/reline@3e3c89d00b

* [ruby/reline] Correct var names in Reline were different from vi-*-mode-string

ruby/reline@8255fc93b9

* [ruby/reline] Remove debug print

ruby/reline@d7fbaedc6a

* [ruby/reline] Suppress crashing when auto_indent_proc returns broken indent info

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

ruby/reline@7c24276275

* [ruby/reline] Suppress crashing when dynamic_prompt_proc returns a broken prompt list

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

ruby/reline@558f7be168

* [ruby/reline] Suppress auto indent for adding newlines in pasting

Co-authored-by: Juanito Fatas <me@juanitofatas.com>

ruby/reline@074bb017a7

* [ruby/reline] Add acknowledgments and license for rb-readline

ruby/reline@19df59b916

* [ruby/irb] Fix comment, irb gem supports 2.5.0 or older

ruby/irb@36118015ba

* should use `assert_include` here.

Random ordering test can introduce antoher candidate so it should be
`assert_include`.

* [ruby/irb] Add missing require

This is useful if you want to use IRB::ColorPrinter as a library like:

```
begin
  require 'irb/color_printer'
  IRB::ColorPrinter.pp(obj)
rescue LoadError
  pp(obj)
end
```

ruby/irb@f8461691c7

* [ruby/irb] Make IRB::ColorPrinter.pp compatible with PP.pp

The incompatible interface is not helpful, again if you want to use it
as a standalone library, falling it back to PP.

Original PP.pp also ends with `out << "\n"`.

ruby/irb@4c74c7d84c

* Suppress constant redefinition warnings

* Fix the failing test with XDG_CONFIG_HOME

* [ruby/irb] Version 1.3.1

ruby/irb@
74BA
c230d08911

* [ruby/reline] Handle ed_search_{prev,next}_history in multiline correctly

The current line was being handled incorrectly when displaying the hit
history, so it has been fixed to be correct.

ruby/reline@a3df4343b3

* [ruby/reline] Move the cursor correctly when deleting at eol

This fixes ruby/reline#246.

ruby/reline@07a73ba601

* [ruby/reline] Version 0.2.1

ruby/reline@a3b3c6ee60

* [ruby/reline] Initialize a variable just in case

ruby/reline@29b10f6e98

* [ruby/reline] Tests with yamatanooroti don't need chdir

Because of chdir, log files ware created in temporary directries on Windows.

ruby/reline@200b469a68

* [ruby/reline] Windows needs more times to wait rendering

ruby/reline@53ff2b09c7

* [ruby/reline] Support for change in Windows-specific behavior at eol

The behavior of automatically moving the cursor to the next line when
displaying a char at the eol on Windows suddenly disappeared.

ruby/reline@cad4de6ee8

* [ruby/reline] Reline::Windows.erase_after_cursor erases attributes too

ruby/reline@68b961dfc7

* [ruby/irb] [ruby/irb] [ruby/reline] Version 0.2.2

ruby/reline@dfb710946f

ruby/irb@1a1cdf9628

ruby/irb@fe99faf8bd

* [ruby/irb] handle `__ENCODING__` as a keyword as well

ruby/irb@a6a33d908f

* [ruby/irb] handle repeated exception separately

ruby/irb@fcf6b34bc5

* [ruby/irb] skip a failling test on TruffleRuby

* due to the difference of backtrace pointed out by @aycabta

ruby/irb@5e00a0ae61

* [ruby/irb] Version 1.3.2

ruby/irb@a7699026cc

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
Co-authored-by: Nobuhiro IMAI <nov@yo.rim.or.jp>
Co-authored-by: Koichi Sasada <ko1@atdot.net>
Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0