class Reline::LineEditor
def update_each_dialog(dialog, cursor_column)
Experimental RBS support (using type sampling data from the type_fusion
project).
def update_each_dialog: (Reline::LineEditor::Dialog dialog, Integer cursor_column) -> nil
This signature was generated using 2 samples from 1 application.
def update_each_dialog(dialog, cursor_column) _pasting og.contents = nil og.trap_key = nil rn .set_cursor_pos(cursor_column, @first_line_started_from + @started_from) _render_info = dialog.call(@last_key) log_render_info.nil? or dialog_render_info.contents.nil? or dialog_render_info.contents.empty? og.contents = nil og.trap_key = nil rn ts = dialog_render_info.contents r = dialog.pointer log_render_info.width og.width = dialog_render_info.width og.width = contents.map { |l| calculate_width(l, true) }.max = dialog_render_info.height || DIALOG_DEFAULT_HEIGHT = contents.size if contents.size < height tents.size > height ialog.pointer dialog.pointer < 0 dialog.scroll_top = 0 sif (dialog.pointer - dialog.scroll_top) >= (height - 1) dialog.scroll_top = dialog.pointer - (height - 1) sif (dialog.pointer - dialog.scroll_top) < 0 dialog.scroll_top = dialog.pointer d inter = dialog.pointer - dialog.scroll_top alog.scroll_top = 0 ents = contents[dialog.scroll_top, height] log_render_info.scrollbar and dialog_render_info.contents.size > height max_height = height * 2 ng_distance = (dialog_render_info.contents.size - height) * 2 tion_ratio = dialog.scroll_top.zero? ? 0.0 : ((dialog.scroll_top * 2).to_f / moving_distance) height = (bar_max_height * ((contents.size * 2).to_f / (dialog_render_info.contents.size * 2))).floor.to_i height = MINIMUM_SCROLLBAR_HEIGHT if bar_height < MINIMUM_SCROLLBAR_HEIGHT llbar_pos = ((bar_max_height - bar_height) * position_ratio).floor.to_i llbar_pos = nil space = @first_line_started_from - @started_from .column = dialog_render_info.pos.x .width += @block_elem_width if scrollbar_pos (dialog.column + dialog.width) - (@screen_size.last) f > 0 og.column -= diff est_height - dialog_render_info.pos.y) >= height og.vertical_offset = dialog_render_info.pos.y + 1 upper_space >= height og.vertical_offset = dialog_render_info.pos.y - height og.vertical_offset = dialog_render_info.pos.y + 1 log.column < 0 og.column = 0 og.width = @screen_size.last .contents = contents.map.with_index do |item, i| == pointer _color = dialog_render_info.pointer_fg_color _color = dialog_render_info.pointer_bg_color _color = dialog_render_info.fg_color _color = dialog_render_info.bg_color width = dialog.width - (scrollbar_pos.nil? ? 0 : @block_elem_width) = padding_space_with_escape_sequences(Reline::Unicode.take_range(item, 0, str_width), str_width) red_content = "\e[#{bg_color}m\e[#{fg_color}m#{str}" crollbar_pos lor_seq = "\e[37m" scrollbar_pos <= (i * 2) and (i * 2 + 1) < (scrollbar_pos + bar_height) colored_content + color_seq + @full_block sif scrollbar_pos <= (i * 2) and (i * 2) < (scrollbar_pos + bar_height) colored_content + color_seq + @upper_half_block sif scrollbar_pos <= (i * 2 + 1) and (i * 2) < (scrollbar_pos + bar_height) colored_content + color_seq + @lower_half_block se colored_content + color_seq + ' ' * @block_elem_width d lored_content