[IPython-dev] [IPython 5] [Docs] Custom Terminal Prompts

Carl Smith carl.input at gmail.com
Wed Jul 13 12:44:18 EDT 2016

No problem, Yuri - mostly just followed Thomas' pointers.

Thanks again, Thomas. Yep - printing the first line of the prompt from a
callback should work fine. I didn't think about the event API.

The current API for defining custom prompts is powerful, but pretty low
level, and it becomes more complicated if you need custom token classes to
use different colours. It'd be nice if there was also a wrapper API that
would take strings, like bash prompts, and parse them into prompt_toolkit
token arrays and plumb them in automatically.

The actual format used in bash prompts makes it awkward to define styles,
so I was thinking about reusing Python's string formatting mini-language,
and just defining a standard signature that will pass a bunch of helpful
stuff to `format` when the prompt is compiled.

No promises, but I'm going to play around with the new prompt API a bit
more and see if there's a light way to wrap the current API.


-- Carl Smith
carl.input at gmail.com

On 13 July 2016 at 11:38, Thomas Kluyver <takowl at gmail.com> wrote:

> Thanks Carl!
> On 13 July 2016 at 01:34, Carl Smith <carl.input at gmail.com> wrote:
>> The commit that adds the examples:
>> https://github.com/ipython/ipython/commit/95ed0855ae23e55c10b46903db911265aa1cdd58#diff-c5d5abe11d1c298906cb121c45eb12e2
> Sigh, of course we have docs on customising prompts in two places. I'll
> try to unify them...
>> One thing I found buggy was the rewrite prompt. If you inherit from
>> `Prompt` and redefine some of the prompt methods in the derived class, as
>> you're meant to do, any prompts that you inherit from `Prompt` will pad
>> themselves out to keep everything aligned. This works well except when you
>> have a multiline prompt.
> Yes, I think the prompt is conceptually a single line. Does the
> information in the lines above where you type need to change while you're
> typing? If not, I'd recommend printing it before the prompt is displayed
> with the post_run_cell event (
> http://ipython.readthedocs.io/en/stable/config/callbacks.html).
> Thomas
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> https://mail.scipy.org/mailman/listinfo/ipython-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20160713/74549f15/attachment.html>

More information about the IPython-dev mailing list