##// END OF EJS Templates
Use python-prompt-toolkit for ipdb....
Matthias Bussonnier -
Show More
@@ -37,6 +37,8 b' from IPython.utils import coloransi, py3compat'
37 37 from IPython.core.excolors import exception_colors
38 38 from IPython.testing.skipdoctest import skip_doctest
39 39
40 from prompt_toolkit import prompt as ptk_prompt
41
40 42 prompt = 'ipdb> '
41 43
42 44 #We have to check this directly from sys.argv, config struct not yet available
@@ -245,13 +247,46 b' class Pdb(OldPdb, object):'
245 247 self.parser = PyColorize.Parser()
246 248
247 249 # Set the prompt - the default prompt is '(Pdb)'
248 Colors = cst.active_colors
249 if color_scheme == 'NoColor':
250 self.prompt = prompt
251 else:
252 # The colour markers are wrapped by bytes 01 and 02 so that readline
253 # can calculate the width.
254 self.prompt = u'\x01%s\x02%s\x01%s\x02' % (Colors.prompt, prompt, Colors.Normal)
250 self.prompt = prompt
251
252
253 def cmdloop(self, intro=None):
254 """Repeatedly issue a prompt, accept input, parse an initial prefix
255 off the received input, and dispatch to action methods, passing them
256 the remainder of the line as argument.
257
258 override the same methods from cmd.Cmd to provide prompt toolkit replacement.
259 """
260 if not self.use_rawinput:
261 raise ValueError('Sorry ipdb does not support raw_input=False')
262
263 def get_prompt_tokens(cli):
264 from pygments.token import Token
265 return [(Token.Prompt, self.prompt)]
266
267 self.preloop()
268 try:
269 if intro is not None:
270 self.intro = intro
271 if self.intro:
272 self.stdout.write(str(self.intro)+"\n")
273 stop = None
274 while not stop:
275 if self.cmdqueue:
276 line = self.cmdqueue.pop(0)
277 else:
278 try:
279 line = ptk_prompt(get_prompt_tokens=get_prompt_tokens)
280 except EOFError:
281 line = 'EOF'
282 line = self.precmd(line)
283 stop = self.onecmd(line)
284 stop = self.postcmd(stop, line)
285 self.postloop()
286 except Exception:
287 pass
288
289
255 290
256 291 def set_colors(self, scheme):
257 292 """Shorthand access to the color table scheme selector method."""
General Comments 0
You need to be logged in to leave comments. Login now