1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/reline
aycabta fb2fda9a27 [ruby/reline] Optimize regexp handling for width
The rendering time in IRB has been reduced as follows:

  start = Time.now

  [{"_id"=>"5f9072a4589a06d2d74b6028",
    "index"=>0,
    "guid"=>"6b3051e2-dbc7-4537-bdb9-6cd7bb5358a7",
    "isActive"=>true,
    "balance"=>"$1,442.84",
    "picture"=>"http://placehold.it/32x32",
    "age"=>34,
    "eyeColor"=>"blue",
    "name"=>{"first"=>"Ward", "last"=>"Levy"},
    "company"=>"HYPLEX",
    "email"=>"ward.levy@hyplex.us",
    "phone"=>"+1 (867) 568-3319",
    "address"=>"867 Cobek Court, Clara, Maryland, 3254",
    "about"=>
     "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing.",
    "registered"=>"Monday, May 25, 2015 6:51 AM",
    "latitude"=>"16.001127",
    "longitude"=>"-72.377848",
    "tags"=>["dolore", "nostrud", "occaecat", "cillum", "nisi"],
    "range"=>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
    "friends"=>
     [{"id"=>0, "name"=>"Alison Bryant"},
      {"id"=>1, "name"=>"Ester Espinoza"},
      {"id"=>2, "name"=>"Sullivan Kane"}],
    "greeting"=>"Hello, Ward! You have 7 unread messages.",
    "favoriteFruit"=>"apple"}]

  puts "Duration: #{Time.now - start} seconds"

0.47sec -> 0.34sec

  start = Time.now

  "Exercitation eu ex aliqua sit. Pariatur aliquip incididunt sint id non consectetur ullamco Lorem ea mollit duis amet sint labore. Commodo laborum labore commodo officia in cillum adipisicing esse excepteur cupidatat adipisicing ut. Non esse incididunt voluptate aliquip cillum eu aute duis laboris sit et. Amet enim quis tempor occaecat excepteur exercitation excepteur deserunt amet cillum adipisicing."

  puts "Duration: #{Time.now - start} seconds"

0.11sec -> 0.08sec

  start = Time.now

  def each_top_level_statement
    initialize_input
    catch(:TERM_INPUT) do
      loop do
        begin
          prompt
          unless l = lex
            throw :TERM_INPUT if @line == ''
          else
            @line_no += l.count("\n")
            next if l == "\n"
            @line.concat l
            if @code_block_open or @ltype or @continue or @indent > 0
              next
            end
          end
          if @line != "\n"
            @line.force_encoding(@io.encoding)
            yield @line, @exp_line_no
          end
          break if @io.eof?
          @line = ''
          @exp_line_no = @line_no

          @indent = 0
        rescue TerminateLineInput
          initialize_input
          prompt
        end
      end
    end
  end

  puts "Duration: #{Time.now - start} seconds"

0.40sec -> 0.33sec

Co-authored-by: NARUSE, Yui <naruse@airemix.jp>

a9e39ddcc4
2020-12-05 02:58:59 +09:00
..
key_actor [ruby/reline] Backspace and C-h should be unassigned on vi command mode 2020-12-05 02:58:58 +09:00
unicode [ruby/reline] Improve the performance of get_mbchar_width 2020-12-05 02:58:58 +09:00
ansi.rb [ruby/reline] Suppress callbacks in pasting 2020-12-05 02:58:58 +09:00
config.rb [ruby/reline] Get rid of loading pathname unnecessarily 2020-08-18 19:09:58 +09:00
general_io.rb [ruby/reline] Call process_insert when the end of pasting plural fullwidth chars 2020-12-05 02:58:58 +09:00
history.rb [ruby/reline] Negative history_size means unlimited 2020-04-29 19:13:14 +09:00
key_actor.rb Add Reline as a fallback library for Readline 2019-04-30 11:44:20 +09:00
key_stroke.rb [ruby/reline] Use single quotes for non-expanded string literals 2020-08-18 19:08:11 +09:00
kill_ring.rb Add Reline as a fallback library for Readline 2019-04-30 11:44:20 +09:00
line_editor.rb [ruby/reline] Key strokes like 2dl should behave d2l 2020-12-05 02:58:58 +09:00
reline.gemspec [ruby/reline] Use yamatanooroti 0.0.6 for supporting startup_message on Windows 2020-12-05 02:58:58 +09:00
unicode.rb [ruby/reline] Optimize regexp handling for width 2020-12-05 02:58:59 +09:00
version.rb [ruby/reline] Version 0.1.8 2020-12-05 02:58:58 +09:00
windows.rb [ruby/reline] Suppress callbacks in pasting 2020-12-05 02:58:58 +09:00