@@ -33,7 +33,18 @@ def match?(other)
3333alias_method :== , :match?
3434end
3535CursorPos = 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
3849class Core
3950ATTR_READER_NAMES = %i(
@@ -58,6 +69,19 @@ class Core
5869attr_accessor :last_incremental_search
5970attr_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+
6185def initialize
6286self . output = STDOUT
6387@dialog_proc_list = { }
@@ -123,14 +147,6 @@ def completion_proc=(p)
123147@completion_proc = p
124148end
125149
126- def autocompletion
127- @config . autocompletion
128- end
129-
130- def autocompletion = ( val )
131- @config . autocompletion = val
132- end
133-
134150def output_modifier_proc = ( p )
135151raise ArgumentError unless p . respond_to? ( :call ) or p . nil?
136152@output_modifier_proc = p
@@ -243,7 +259,16 @@ def get_screen_size
243259context . push ( cursor_pos_to_render , result , pointer , dialog )
244260end
245261dialog . 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}
248273Reline ::DEFAULT_DIALOG_CONTEXT = Array . new
249274
@@ -528,6 +553,10 @@ def self.insert_text(*args, &block)
528553def_single_delegators :core , :add_dialog_proc
529554def_single_delegators :core , :dialog_proc
530555def_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
532561def_single_delegators :core , :readmultiline
533562def_instance_delegators self , :readmultiline
@@ -550,6 +579,10 @@ def self.core
550579core . filename_quote_characters = ""
551580core . special_prefixes = ""
552581core . 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}
554587end
555588
0 commit comments