44from __future__ import unicode_literals
55from prompt_toolkit .application .run_in_terminal import run_coroutine_in_terminal
66from prompt_toolkit .completion import CompleteEvent , get_common_complete_suffix
7- from prompt_toolkit .utils import get_cwidth
8- from prompt_toolkit .keys import Keys
97from prompt_toolkit .key_binding .key_bindings import KeyBindings
8+ from prompt_toolkit .keys import Keys
9+ from prompt_toolkit .utils import get_cwidth
1010
1111import math
1212
@@ -73,6 +73,7 @@ def _display_completions_like_readline(app, completions):
7373 on a single page and provide a paginator to walk through them.
7474 """
7575 from prompt_toolkit .shortcuts .prompt import create_confirm_session
76+ from prompt_toolkit .formatted_text import to_formatted_text
7677 assert isinstance (completions , list )
7778
7879 # Get terminal dimensions.
@@ -99,17 +100,21 @@ def display(page):
99100 page_columns = [page_completions [i * page_row_count :(i + 1 ) * page_row_count ]
100101 for i in range (column_count )]
101102
102- result = []
103+ result = [] # FormattedText list: (style,text) tuples.
104+
103105 for r in range (page_row_count ):
104106 for c in range (column_count ):
105107 try :
106- result .append (page_columns [c ][r ].text .ljust (max_compl_width ))
108+ completion = page_columns [c ][r ]
109+
110+ result .extend (to_formatted_text (
111+ completion .text .ljust (max_compl_width ),
112+ style = completion .style ))
107113 except IndexError :
108114 pass
109- result .append (' \n ' )
115+ result .append (( '' , ' \n ') )
110116
111- app .output .write ('' .join (result ))
112- app .output .flush ()
117+ app .print_text (result )
113118
114119 # User interaction through an application generator function.
115120 def run_compl ():
0 commit comments