reline 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/README.md +7 -0
 - data/lib/reline/config.rb +1 -1
 - data/lib/reline/face.rb +157 -0
 - data/lib/reline/general_io.rb +5 -1
 - data/lib/reline/line_editor.rb +10 -13
 - data/lib/reline/unicode/east_asian_width.rb +3 -3
 - data/lib/reline/version.rb +1 -1
 - data/lib/reline.rb +6 -8
 - metadata +4 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 24b02f1563ed151bd0b67246977442d845c887048264399384dddf506b4d6de2
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3d51b1b162709f7d378e782a4f28b6b1e99b0fe3fa8929846481c4c6ab9dae5e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 0a467797d4c4191c3b9949b5048fc3cadae9e837bdf086565e51206f7d6786774ae13b6081f6e418fdf4ee62c82d02e369d50a4cca9955918ebfb682d5875a7d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 65e0a409b22c3f5ebeb8bd3b068168bdabac6cda5d0b8b7d6d07dacbe90265055a7eeb24f433a455b9bd6ca06dbe3f9d2018987ea1a098dedc96d6a6eb16430c
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -55,6 +55,13 @@ end 
     | 
|
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
            See also: [test/reline/yamatanooroti/multiline_repl](https://github.com/ruby/reline/blob/master/test/reline/yamatanooroti/multiline_repl)
         
     | 
| 
       57 
57 
     | 
    
         | 
| 
      
 58 
     | 
    
         
            +
            ## Documentation
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            ### Reline::Face
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
            You can modify the text color and text decorations in your terminal emulator.
         
     | 
| 
      
 63 
     | 
    
         
            +
            See [doc/reline/face.md](./doc/reline/face.md)
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
       58 
65 
     | 
    
         
             
            ## Contributing
         
     | 
| 
       59 
66 
     | 
    
         | 
| 
       60 
67 
     | 
    
         
             
            Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/reline.
         
     | 
    
        data/lib/reline/config.rb
    CHANGED
    
    
    
        data/lib/reline/face.rb
    ADDED
    
    | 
         @@ -0,0 +1,157 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # frozen_string_literal: true
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            class Reline::Face
         
     | 
| 
      
 4 
     | 
    
         
            +
              SGR_PARAMETERS = {
         
     | 
| 
      
 5 
     | 
    
         
            +
                foreground: {
         
     | 
| 
      
 6 
     | 
    
         
            +
                  black: 30,
         
     | 
| 
      
 7 
     | 
    
         
            +
                  red: 31,
         
     | 
| 
      
 8 
     | 
    
         
            +
                  green: 32,
         
     | 
| 
      
 9 
     | 
    
         
            +
                  yellow: 33,
         
     | 
| 
      
 10 
     | 
    
         
            +
                  blue: 34,
         
     | 
| 
      
 11 
     | 
    
         
            +
                  magenta: 35,
         
     | 
| 
      
 12 
     | 
    
         
            +
                  cyan: 36,
         
     | 
| 
      
 13 
     | 
    
         
            +
                  white: 37,
         
     | 
| 
      
 14 
     | 
    
         
            +
                  bright_black: 90,
         
     | 
| 
      
 15 
     | 
    
         
            +
                  gray: 90,
         
     | 
| 
      
 16 
     | 
    
         
            +
                  bright_red: 91,
         
     | 
| 
      
 17 
     | 
    
         
            +
                  bright_green: 92,
         
     | 
| 
      
 18 
     | 
    
         
            +
                  bright_yellow: 93,
         
     | 
| 
      
 19 
     | 
    
         
            +
                  bright_blue: 94,
         
     | 
| 
      
 20 
     | 
    
         
            +
                  bright_magenta: 95,
         
     | 
| 
      
 21 
     | 
    
         
            +
                  bright_cyan: 96,
         
     | 
| 
      
 22 
     | 
    
         
            +
                  bright_white: 97
         
     | 
| 
      
 23 
     | 
    
         
            +
                },
         
     | 
| 
      
 24 
     | 
    
         
            +
                background: {
         
     | 
| 
      
 25 
     | 
    
         
            +
                  black: 40,
         
     | 
| 
      
 26 
     | 
    
         
            +
                  red: 41,
         
     | 
| 
      
 27 
     | 
    
         
            +
                  green: 42,
         
     | 
| 
      
 28 
     | 
    
         
            +
                  yellow: 43,
         
     | 
| 
      
 29 
     | 
    
         
            +
                  blue: 44,
         
     | 
| 
      
 30 
     | 
    
         
            +
                  magenta: 45,
         
     | 
| 
      
 31 
     | 
    
         
            +
                  cyan: 46,
         
     | 
| 
      
 32 
     | 
    
         
            +
                  white: 47,
         
     | 
| 
      
 33 
     | 
    
         
            +
                  bright_black: 100,
         
     | 
| 
      
 34 
     | 
    
         
            +
                  gray: 100,
         
     | 
| 
      
 35 
     | 
    
         
            +
                  bright_red: 101,
         
     | 
| 
      
 36 
     | 
    
         
            +
                  bright_green: 102,
         
     | 
| 
      
 37 
     | 
    
         
            +
                  bright_yellow: 103,
         
     | 
| 
      
 38 
     | 
    
         
            +
                  bright_blue: 104,
         
     | 
| 
      
 39 
     | 
    
         
            +
                  bright_magenta: 105,
         
     | 
| 
      
 40 
     | 
    
         
            +
                  bright_cyan: 106,
         
     | 
| 
      
 41 
     | 
    
         
            +
                  bright_white: 107,
         
     | 
| 
      
 42 
     | 
    
         
            +
                },
         
     | 
| 
      
 43 
     | 
    
         
            +
                style: {
         
     | 
| 
      
 44 
     | 
    
         
            +
                  reset: 0,
         
     | 
| 
      
 45 
     | 
    
         
            +
                  bold: 1,
         
     | 
| 
      
 46 
     | 
    
         
            +
                  faint: 2,
         
     | 
| 
      
 47 
     | 
    
         
            +
                  italicized: 3,
         
     | 
| 
      
 48 
     | 
    
         
            +
                  underlined: 4,
         
     | 
| 
      
 49 
     | 
    
         
            +
                  slowly_blinking: 5,
         
     | 
| 
      
 50 
     | 
    
         
            +
                  blinking: 5,
         
     | 
| 
      
 51 
     | 
    
         
            +
                  rapidly_blinking: 6,
         
     | 
| 
      
 52 
     | 
    
         
            +
                  negative: 7,
         
     | 
| 
      
 53 
     | 
    
         
            +
                  concealed: 8,
         
     | 
| 
      
 54 
     | 
    
         
            +
                  crossed_out: 9
         
     | 
| 
      
 55 
     | 
    
         
            +
                }
         
     | 
| 
      
 56 
     | 
    
         
            +
              }.freeze
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
              class Config
         
     | 
| 
      
 59 
     | 
    
         
            +
                ESSENTIAL_DEFINE_NAMES = %i(default enhanced scrollbar).freeze
         
     | 
| 
      
 60 
     | 
    
         
            +
                RESET_SGR = "\e[0m".freeze
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                def initialize(name, &block)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  @definition = {}
         
     | 
| 
      
 64 
     | 
    
         
            +
                  block.call(self)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  ESSENTIAL_DEFINE_NAMES.each do |name|
         
     | 
| 
      
 66 
     | 
    
         
            +
                    @definition[name] ||= { style: :reset, escape_sequence: RESET_SGR }
         
     | 
| 
      
 67 
     | 
    
         
            +
                  end
         
     | 
| 
      
 68 
     | 
    
         
            +
                end
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                attr_reader :definition
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
                def define(name, **values)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  values[:escape_sequence] = format_to_sgr(values.to_a).freeze
         
     | 
| 
      
 74 
     | 
    
         
            +
                  @definition[name] = values
         
     | 
| 
      
 75 
     | 
    
         
            +
                end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                def [](name)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  @definition.dig(name, :escape_sequence) or raise ArgumentError, "unknown face: #{name}"
         
     | 
| 
      
 79 
     | 
    
         
            +
                end
         
     | 
| 
      
 80 
     | 
    
         
            +
             
     | 
| 
      
 81 
     | 
    
         
            +
                private
         
     | 
| 
      
 82 
     | 
    
         
            +
             
     | 
| 
      
 83 
     | 
    
         
            +
                def sgr_rgb(key, value)
         
     | 
| 
      
 84 
     | 
    
         
            +
                  return nil unless rgb_expression?(value)
         
     | 
| 
      
 85 
     | 
    
         
            +
                  case key
         
     | 
| 
      
 86 
     | 
    
         
            +
                  when :foreground
         
     | 
| 
      
 87 
     | 
    
         
            +
                    "38;2;"
         
     | 
| 
      
 88 
     | 
    
         
            +
                  when :background
         
     | 
| 
      
 89 
     | 
    
         
            +
                    "48;2;"
         
     | 
| 
      
 90 
     | 
    
         
            +
                  end + value[1, 6].scan(/../).map(&:hex).join(";")
         
     | 
| 
      
 91 
     | 
    
         
            +
                end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
                def format_to_sgr(ordered_values)
         
     | 
| 
      
 94 
     | 
    
         
            +
                  sgr = "\e[" + ordered_values.map do |key_value|
         
     | 
| 
      
 95 
     | 
    
         
            +
                    key, value = key_value
         
     | 
| 
      
 96 
     | 
    
         
            +
                    case key
         
     | 
| 
      
 97 
     | 
    
         
            +
                    when :foreground, :background
         
     | 
| 
      
 98 
     | 
    
         
            +
                      case value
         
     | 
| 
      
 99 
     | 
    
         
            +
                      when Symbol
         
     | 
| 
      
 100 
     | 
    
         
            +
                        SGR_PARAMETERS[key][value]
         
     | 
| 
      
 101 
     | 
    
         
            +
                      when String
         
     | 
| 
      
 102 
     | 
    
         
            +
                        sgr_rgb(key, value)
         
     | 
| 
      
 103 
     | 
    
         
            +
                      end
         
     | 
| 
      
 104 
     | 
    
         
            +
                    when :style
         
     | 
| 
      
 105 
     | 
    
         
            +
                      [ value ].flatten.map do |style_name|
         
     | 
| 
      
 106 
     | 
    
         
            +
                        SGR_PARAMETERS[:style][style_name]
         
     | 
| 
      
 107 
     | 
    
         
            +
                      end.then do |sgr_parameters|
         
     | 
| 
      
 108 
     | 
    
         
            +
                        sgr_parameters.include?(nil) ? nil : sgr_parameters
         
     | 
| 
      
 109 
     | 
    
         
            +
                      end
         
     | 
| 
      
 110 
     | 
    
         
            +
                    end.then do |rendition_expression|
         
     | 
| 
      
 111 
     | 
    
         
            +
                      unless rendition_expression
         
     | 
| 
      
 112 
     | 
    
         
            +
                        raise ArgumentError, "invalid SGR parameter: #{value.inspect}"
         
     | 
| 
      
 113 
     | 
    
         
            +
                      end
         
     | 
| 
      
 114 
     | 
    
         
            +
                      rendition_expression
         
     | 
| 
      
 115 
     | 
    
         
            +
                    end
         
     | 
| 
      
 116 
     | 
    
         
            +
                  end.join(';') + "m"
         
     | 
| 
      
 117 
     | 
    
         
            +
                  sgr == RESET_SGR ? RESET_SGR : RESET_SGR + sgr
         
     | 
| 
      
 118 
     | 
    
         
            +
                end
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
                def rgb_expression?(color)
         
     | 
| 
      
 121 
     | 
    
         
            +
                  color.respond_to?(:match?) and color.match?(/\A#[0-9a-fA-F]{6}\z/)
         
     | 
| 
      
 122 
     | 
    
         
            +
                end
         
     | 
| 
      
 123 
     | 
    
         
            +
              end
         
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
              private_constant :SGR_PARAMETERS, :Config
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
              def self.[](name)
         
     | 
| 
      
 128 
     | 
    
         
            +
                @configs[name]
         
     | 
| 
      
 129 
     | 
    
         
            +
              end
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
              def self.config(name, &block)
         
     | 
| 
      
 132 
     | 
    
         
            +
                @configs ||= {}
         
     | 
| 
      
 133 
     | 
    
         
            +
                @configs[name] = Config.new(name, &block)
         
     | 
| 
      
 134 
     | 
    
         
            +
              end
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
              def self.configs
         
     | 
| 
      
 137 
     | 
    
         
            +
                @configs.transform_values(&:definition)
         
     | 
| 
      
 138 
     | 
    
         
            +
              end
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
              def self.load_initial_configs
         
     | 
| 
      
 141 
     | 
    
         
            +
                config(:default) do |conf|
         
     | 
| 
      
 142 
     | 
    
         
            +
                  conf.define :default, style: :reset
         
     | 
| 
      
 143 
     | 
    
         
            +
                  conf.define :enhanced, style: :reset
         
     | 
| 
      
 144 
     | 
    
         
            +
                  conf.define :scrollbar, style: :reset
         
     | 
| 
      
 145 
     | 
    
         
            +
                end
         
     | 
| 
      
 146 
     | 
    
         
            +
                config(:completion_dialog) do |conf|
         
     | 
| 
      
 147 
     | 
    
         
            +
                  conf.define :default, foreground: :white, background: :cyan
         
     | 
| 
      
 148 
     | 
    
         
            +
                  conf.define :enhanced, foreground: :white, background: :magenta
         
     | 
| 
      
 149 
     | 
    
         
            +
                  conf.define :scrollbar, foreground: :white, background: :cyan
         
     | 
| 
      
 150 
     | 
    
         
            +
                end
         
     | 
| 
      
 151 
     | 
    
         
            +
              end
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
              def self.reset_to_initial_configs
         
     | 
| 
      
 154 
     | 
    
         
            +
                @configs = {}
         
     | 
| 
      
 155 
     | 
    
         
            +
                load_initial_configs
         
     | 
| 
      
 156 
     | 
    
         
            +
              end
         
     | 
| 
      
 157 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/reline/general_io.rb
    CHANGED
    
    | 
         @@ -3,7 +3,11 @@ require 'io/wait' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            class Reline::GeneralIO
         
     | 
| 
       4 
4 
     | 
    
         
             
              def self.reset(encoding: nil)
         
     | 
| 
       5 
5 
     | 
    
         
             
                @@pasting = false
         
     | 
| 
       6 
     | 
    
         
            -
                 
     | 
| 
      
 6 
     | 
    
         
            +
                if encoding
         
     | 
| 
      
 7 
     | 
    
         
            +
                  @@encoding = encoding
         
     | 
| 
      
 8 
     | 
    
         
            +
                elsif defined?(@@encoding)
         
     | 
| 
      
 9 
     | 
    
         
            +
                  remove_class_variable(:@@encoding)
         
     | 
| 
      
 10 
     | 
    
         
            +
                end
         
     | 
| 
       7 
11 
     | 
    
         
             
              end
         
     | 
| 
       8 
12 
     | 
    
         | 
| 
       9 
13 
     | 
    
         
             
              def self.encoding
         
     | 
    
        data/lib/reline/line_editor.rb
    CHANGED
    
    | 
         @@ -831,27 +831,24 @@ class Reline::LineEditor 
     | 
|
| 
       831 
831 
     | 
    
         
             
                  dialog.column = 0
         
     | 
| 
       832 
832 
     | 
    
         
             
                  dialog.width = @screen_size.last
         
     | 
| 
       833 
833 
     | 
    
         
             
                end
         
     | 
| 
      
 834 
     | 
    
         
            +
                face = Reline::Face[dialog_render_info.face || :default]
         
     | 
| 
      
 835 
     | 
    
         
            +
                scrollbar_sgr = face[:scrollbar]
         
     | 
| 
      
 836 
     | 
    
         
            +
                default_sgr = face[:default]
         
     | 
| 
      
 837 
     | 
    
         
            +
                enhanced_sgr = face[:enhanced]
         
     | 
| 
       834 
838 
     | 
    
         
             
                dialog.contents = contents.map.with_index do |item, i|
         
     | 
| 
       835 
     | 
    
         
            -
                   
     | 
| 
       836 
     | 
    
         
            -
                    fg_color = dialog_render_info.pointer_fg_color
         
     | 
| 
       837 
     | 
    
         
            -
                    bg_color = dialog_render_info.pointer_bg_color
         
     | 
| 
       838 
     | 
    
         
            -
                  else
         
     | 
| 
       839 
     | 
    
         
            -
                    fg_color = dialog_render_info.fg_color
         
     | 
| 
       840 
     | 
    
         
            -
                    bg_color = dialog_render_info.bg_color
         
     | 
| 
       841 
     | 
    
         
            -
                  end
         
     | 
| 
      
 839 
     | 
    
         
            +
                  line_sgr = i == pointer ? enhanced_sgr : default_sgr
         
     | 
| 
       842 
840 
     | 
    
         
             
                  str_width = dialog.width - (scrollbar_pos.nil? ? 0 : @block_elem_width)
         
     | 
| 
       843 
841 
     | 
    
         
             
                  str = padding_space_with_escape_sequences(Reline::Unicode.take_range(item, 0, str_width), str_width)
         
     | 
| 
       844 
     | 
    
         
            -
                  colored_content = " 
     | 
| 
      
 842 
     | 
    
         
            +
                  colored_content = "#{line_sgr}#{str}"
         
     | 
| 
       845 
843 
     | 
    
         
             
                  if scrollbar_pos
         
     | 
| 
       846 
     | 
    
         
            -
                    color_seq = "\e[37m"
         
     | 
| 
       847 
844 
     | 
    
         
             
                    if scrollbar_pos <= (i * 2) and (i * 2 + 1) < (scrollbar_pos + bar_height)
         
     | 
| 
       848 
     | 
    
         
            -
                      colored_content +  
     | 
| 
      
 845 
     | 
    
         
            +
                      colored_content + scrollbar_sgr + @full_block
         
     | 
| 
       849 
846 
     | 
    
         
             
                    elsif scrollbar_pos <= (i * 2) and (i * 2) < (scrollbar_pos + bar_height)
         
     | 
| 
       850 
     | 
    
         
            -
                      colored_content +  
     | 
| 
      
 847 
     | 
    
         
            +
                      colored_content + scrollbar_sgr + @upper_half_block
         
     | 
| 
       851 
848 
     | 
    
         
             
                    elsif scrollbar_pos <= (i * 2 + 1) and (i * 2) < (scrollbar_pos + bar_height)
         
     | 
| 
       852 
     | 
    
         
            -
                      colored_content +  
     | 
| 
      
 849 
     | 
    
         
            +
                      colored_content + scrollbar_sgr + @lower_half_block
         
     | 
| 
       853 
850 
     | 
    
         
             
                    else
         
     | 
| 
       854 
     | 
    
         
            -
                      colored_content +  
     | 
| 
      
 851 
     | 
    
         
            +
                      colored_content + scrollbar_sgr + ' ' * @block_elem_width
         
     | 
| 
       855 
852 
     | 
    
         
             
                    end
         
     | 
| 
       856 
853 
     | 
    
         
             
                  else
         
     | 
| 
       857 
854 
     | 
    
         
             
                    colored_content
         
     | 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            class Reline::Unicode::EastAsianWidth
         
     | 
| 
       2 
2 
     | 
    
         
             
              # This is based on EastAsianWidth.txt
         
     | 
| 
       3 
     | 
    
         
            -
              #  
     | 
| 
      
 3 
     | 
    
         
            +
              # UNICODE_VERSION = '15.1.0'
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
              # Fullwidth
         
     | 
| 
       6 
6 
     | 
    
         
             
              TYPE_F = /^[#{ %W(
         
     | 
| 
         @@ -60,14 +60,14 @@ class Reline::Unicode::EastAsianWidth 
     | 
|
| 
       60 
60 
     | 
    
         
             
                \u{2E80}-\u{2E99}
         
     | 
| 
       61 
61 
     | 
    
         
             
                \u{2E9B}-\u{2EF3}
         
     | 
| 
       62 
62 
     | 
    
         
             
                \u{2F00}-\u{2FD5}
         
     | 
| 
       63 
     | 
    
         
            -
                \u{2FF0}-\u{ 
     | 
| 
      
 63 
     | 
    
         
            +
                \u{2FF0}-\u{2FFF}
         
     | 
| 
       64 
64 
     | 
    
         
             
                \u{3001}-\u{303E}
         
     | 
| 
       65 
65 
     | 
    
         
             
                \u{3041}-\u{3096}
         
     | 
| 
       66 
66 
     | 
    
         
             
                \u{3099}-\u{30FF}
         
     | 
| 
       67 
67 
     | 
    
         
             
                \u{3105}-\u{312F}
         
     | 
| 
       68 
68 
     | 
    
         
             
                \u{3131}-\u{318E}
         
     | 
| 
       69 
69 
     | 
    
         
             
                \u{3190}-\u{31E3}
         
     | 
| 
       70 
     | 
    
         
            -
                \u{ 
     | 
| 
      
 70 
     | 
    
         
            +
                \u{31EF}-\u{321E}
         
     | 
| 
       71 
71 
     | 
    
         
             
                \u{3220}-\u{3247}
         
     | 
| 
       72 
72 
     | 
    
         
             
                \u{3250}-\u{4DBF}
         
     | 
| 
       73 
73 
     | 
    
         
             
                \u{4E00}-\u{A48C}
         
     | 
    
        data/lib/reline/version.rb
    CHANGED
    
    
    
        data/lib/reline.rb
    CHANGED
    
    | 
         @@ -7,6 +7,7 @@ require 'reline/key_stroke' 
     | 
|
| 
       7 
7 
     | 
    
         
             
            require 'reline/line_editor'
         
     | 
| 
       8 
8 
     | 
    
         
             
            require 'reline/history'
         
     | 
| 
       9 
9 
     | 
    
         
             
            require 'reline/terminfo'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'reline/face'
         
     | 
| 
       10 
11 
     | 
    
         
             
            require 'rbconfig'
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
13 
     | 
    
         
             
            module Reline
         
     | 
| 
         @@ -36,10 +37,8 @@ module Reline 
     | 
|
| 
       36 
37 
     | 
    
         
             
              DialogRenderInfo = Struct.new(
         
     | 
| 
       37 
38 
     | 
    
         
             
                :pos,
         
     | 
| 
       38 
39 
     | 
    
         
             
                :contents,
         
     | 
| 
       39 
     | 
    
         
            -
                : 
     | 
| 
       40 
     | 
    
         
            -
                : 
     | 
| 
       41 
     | 
    
         
            -
                :fg_color,
         
     | 
| 
       42 
     | 
    
         
            -
                :pointer_fg_color,
         
     | 
| 
      
 40 
     | 
    
         
            +
                :face,
         
     | 
| 
      
 41 
     | 
    
         
            +
                :bg_color, # For the time being, this line should stay here for the compatibility with IRB.
         
     | 
| 
       43 
42 
     | 
    
         
             
                :width,
         
     | 
| 
       44 
43 
     | 
    
         
             
                :height,
         
     | 
| 
       45 
44 
     | 
    
         
             
                :scrollbar,
         
     | 
| 
         @@ -260,10 +259,7 @@ module Reline 
     | 
|
| 
       260 
259 
     | 
    
         
             
                    contents: result,
         
     | 
| 
       261 
260 
     | 
    
         
             
                    scrollbar: true,
         
     | 
| 
       262 
261 
     | 
    
         
             
                    height: [15, preferred_dialog_height].min,
         
     | 
| 
       263 
     | 
    
         
            -
                     
     | 
| 
       264 
     | 
    
         
            -
                    pointer_bg_color: 45,
         
     | 
| 
       265 
     | 
    
         
            -
                    fg_color: 37,
         
     | 
| 
       266 
     | 
    
         
            -
                    pointer_fg_color: 37
         
     | 
| 
      
 262 
     | 
    
         
            +
                    face: :completion_dialog
         
     | 
| 
       267 
263 
     | 
    
         
             
                  )
         
     | 
| 
       268 
264 
     | 
    
         
             
                }
         
     | 
| 
       269 
265 
     | 
    
         
             
                Reline::DEFAULT_DIALOG_CONTEXT = Array.new
         
     | 
| 
         @@ -606,4 +602,6 @@ else 
     | 
|
| 
       606 
602 
     | 
    
         
             
              io
         
     | 
| 
       607 
603 
     | 
    
         
             
            end
         
     | 
| 
       608 
604 
     | 
    
         | 
| 
      
 605 
     | 
    
         
            +
            Reline::Face.load_initial_configs
         
     | 
| 
      
 606 
     | 
    
         
            +
             
     | 
| 
       609 
607 
     | 
    
         
             
            Reline::HISTORY = Reline::History.new(Reline.core.config)
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: reline
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.4.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - aycabta
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2023- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2023-11-07 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: io-console
         
     | 
| 
         @@ -37,6 +37,7 @@ files: 
     | 
|
| 
       37 
37 
     | 
    
         
             
            - lib/reline.rb
         
     | 
| 
       38 
38 
     | 
    
         
             
            - lib/reline/ansi.rb
         
     | 
| 
       39 
39 
     | 
    
         
             
            - lib/reline/config.rb
         
     | 
| 
      
 40 
     | 
    
         
            +
            - lib/reline/face.rb
         
     | 
| 
       40 
41 
     | 
    
         
             
            - lib/reline/general_io.rb
         
     | 
| 
       41 
42 
     | 
    
         
             
            - lib/reline/history.rb
         
     | 
| 
       42 
43 
     | 
    
         
             
            - lib/reline/key_actor.rb
         
     | 
| 
         @@ -72,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       72 
73 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       73 
74 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       74 
75 
     | 
    
         
             
            requirements: []
         
     | 
| 
       75 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 76 
     | 
    
         
            +
            rubygems_version: 3.5.0.dev
         
     | 
| 
       76 
77 
     | 
    
         
             
            signing_key:
         
     | 
| 
       77 
78 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       78 
79 
     | 
    
         
             
            summary: Alternative GNU Readline or Editline implementation by pure Ruby.
         
     |