@@ -33,7 +33,18 @@ def match?(other)
3333 alias_method :== , :match?
3434 end
3535 CursorPos = Struct . new ( :x , :y )
36- DialogRenderInfo = Struct . new ( :pos , :contents , :bg_color , :width , :height , :scrollbar , keyword_init : true )
36+ DialogRenderInfo = Struct . new (
37+ :pos ,
38+ :contents ,
39+ :bg_color ,
40+ :pointer_bg_color ,
41+ :fg_color ,
42+ :pointer_fg_color ,
43+ :width ,
44+ :height ,
45+ :scrollbar ,
46+ keyword_init : true
47+ )
3748
3849 class Core
3950 ATTR_READER_NAMES = %i(
@@ -58,6 +69,19 @@ class Core
5869 attr_accessor :last_incremental_search
5970 attr_reader :output
6071
72+ extend Forwardable
73+ def_delegators :config ,
74+ :autocompletion ,
75+ :autocompletion= ,
76+ :dialog_default_bg_color ,
77+ :dialog_default_bg_color= ,
78+ :dialog_default_fg_color ,
79+ :dialog_default_fg_color= ,
80+ :dialog_pointer_bg_color ,
81+ :dialog_pointer_bg_color= ,
82+ :dialog_pointer_fg_color ,
83+ :dialog_pointer_fg_color=
84+
6185 def initialize
6286 self . output = STDOUT
6387 @dialog_proc_list = { }
@@ -123,14 +147,6 @@ def completion_proc=(p)
123147 @completion_proc = p
124148 end
125149
126- def autocompletion
127- @config . autocompletion
128- end
129-
130- def autocompletion = ( val )
131- @config . autocompletion = val
132- end
133-
134150 def output_modifier_proc = ( p )
135151 raise ArgumentError unless p . respond_to? ( :call ) or p . nil?
136152 @output_modifier_proc = p
@@ -243,7 +259,16 @@ def get_screen_size
243259 context . push ( cursor_pos_to_render , result , pointer , dialog )
244260 end
245261 dialog . pointer = pointer
246- DialogRenderInfo . new ( pos : cursor_pos_to_render , contents : result , scrollbar : true , height : 15 )
262+ DialogRenderInfo . new (
263+ pos : cursor_pos_to_render ,
264+ contents : result ,
265+ scrollbar : true ,
266+ height : 15 ,
267+ bg_color : config . dialog_default_bg_color ,
268+ pointer_bg_color : config . dialog_pointer_bg_color ,
269+ fg_color : config . dialog_default_fg_color ,
270+ pointer_fg_color : config . dialog_pointer_fg_color
271+ )
247272 }
248273 Reline ::DEFAULT_DIALOG_CONTEXT = Array . new
249274
@@ -528,6 +553,10 @@ def self.insert_text(*args, &block)
528553 def_single_delegators :core , :add_dialog_proc
529554 def_single_delegators :core , :dialog_proc
530555 def_single_delegators :core , :autocompletion , :autocompletion=
556+ def_single_delegators :core , :dialog_default_bg_color , :dialog_default_bg_color=
557+ def_single_delegators :core , :dialog_pointer_bg_color , :dialog_pointer_bg_color=
558+ def_single_delegators :core , :dialog_default_fg_color , :dialog_default_fg_color=
559+ def_single_delegators :core , :dialog_pointer_fg_color , :dialog_pointer_fg_color=
531560
532561 def_single_delegators :core , :readmultiline
533562 def_instance_delegators self , :readmultiline
@@ -550,6 +579,10 @@ def self.core
550579 core . filename_quote_characters = ""
551580 core . special_prefixes = ""
552581 core . add_dialog_proc ( :autocomplete , Reline ::DEFAULT_DIALOG_PROC_AUTOCOMPLETE , Reline ::DEFAULT_DIALOG_CONTEXT )
582+ core . dialog_default_bg_color = 46 # Cyan
583+ core . dialog_default_fg_color = 37 # White
584+ core . dialog_pointer_bg_color = 45 # Magenta
585+ core . dialog_pointer_fg_color = 37 # White
553586 }
554587 end
555588
0 commit comments