Skip to content

Commit b666dcf

Browse files
choose completion box size based on screen size
1 parent b30efb8 commit b666dcf

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

bpython/curtsiesfrontend/repl.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1415,10 +1415,21 @@ def move_screen_up(current_line_start_row):
14151415
if self.config.curtsies_list_above:
14161416
info_max_rows = max(visible_space_above, visible_space_below)
14171417
else:
1418+
# Logic for determining size of completion box
14181419
# smallest allowed over-full completion box
1419-
minimum_possible_height = 20
1420+
minimum_possible_height = 4
1421+
# smallest amount of history that must be visible
1422+
try_preserve_history_height = 40
1423+
preferred_height = max(
1424+
# always make infobox at least this height
1425+
minimum_possible_height,
1426+
1427+
# there's so much space that we can preserve
1428+
# this much history and still expand the infobox
1429+
min_height - try_preserve_history_height)
1430+
14201431
info_max_rows = min(max(visible_space_below,
1421-
minimum_possible_height),
1432+
preferred_height),
14221433
min_height - current_line_height - 1)
14231434
infobox = paint.paint_infobox(
14241435
info_max_rows,

0 commit comments

Comments
 (0)