GNU bug report logs - #18084
24.3.92; python.el: buggy ipython support

Previous Next

Package: emacs;

Reported by: Carlos Pita <carlosjosepita <at> gmail.com>

Date: Tue, 22 Jul 2014 20:57:01 UTC

Severity: normal

Fixed in version 24.3.92

Done: fgallina <at> gnu.org (Fabián Ezequiel Gallina)

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 18084 in the body.
You can then email your comments to 18084 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#18084; Package emacs. (Tue, 22 Jul 2014 20:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Carlos Pita <carlosjosepita <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 22 Jul 2014 20:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Carlos Pita <carlosjosepita <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.92; python.el: buggy ipython support
Date: Tue, 22 Jul 2014 17:54:12 -0300
Ipython is pretty smart doing autocompletion and output coloring but
python.el is currently getting in its way:

1) The coloring is heuristic at best. It's ok for the vanilla python
interpreter but not nearly as good as ipython's. Not only keywords and
identifiers are colored in non-code contexts, but also string quoting
gets often messed up. I think the best option is to disable font lock by
default when the interpreter is ipython.

2) Autocompletion of magic commands is broken. Autocompletion of paths
is broken. Maybe another kind of ipython specific autocompletion is
broken too. Currently the autocompletion prefix is parsed from the
buffer using a "dotty" syntax table that includes '.' and '_' as part of
identifiers. Clearly this is not enough to play well with ipython. But
fortunately it's not necessary to be too smart. Sendind the prefix up to
the first preceding whitespace char will do the trick.

So I propose to:

i) Disable font lock by default for ipython.
ii) Parsing the prefix up to whitespace char for ipython autocompletion.

I think these solutions are very simple and will improve the ipython
experience a lot. Obviously the color theme will differ from the one for
python-mode but this is a minor annoyance for such gain in simplicity.

-----------

In GNU Emacs 24.3.92.1 (i686-pc-linux-gnu, GTK+ Version 3.12.2)
 of 2014-07-22 on carlos
Windowing system distributor `The X.Org Foundation', version 11.0.11502000
Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong
 --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'




Reply sent to fgallina <at> gnu.org (Fabián Ezequiel Gallina):
You have taken responsibility. (Mon, 28 Jul 2014 04:35:02 GMT) Full text and rfc822 format available.

Notification sent to Carlos Pita <carlosjosepita <at> gmail.com>:
bug acknowledged by developer. (Mon, 28 Jul 2014 04:35:03 GMT) Full text and rfc822 format available.

Message #10 received at 18084-done <at> debbugs.gnu.org (full text, mbox):

From: fgallina <at> gnu.org (Fabián Ezequiel Gallina)
To: 18084-done <at> debbugs.gnu.org
Subject: 24.3.92; python.el: buggy ipython support
Date: Mon, 28 Jul 2014 01:34:27 -0300
Fixed at revno 117595 in trunk.

Also revno 117580 includes relevant changes on shell font-locking.


Cheers,
Fabián




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18084; Package emacs. (Mon, 28 Jul 2014 14:37:02 GMT) Full text and rfc822 format available.

Message #13 received at 18084 <at> debbugs.gnu.org (full text, mbox):

From: Carlos Pita <carlosjosepita <at> gmail.com>
To: 18084 <at> debbugs.gnu.org
Subject: Re: bug#18084: closed (24.3.92; python.el: buggy ipython support)
Date: Mon, 28 Jul 2014 11:36:14 -0300
[Message part 1 (text/plain, inline)]
Good work! It's working very well, che :). Till now I just was able to
found this one quirk: if you delete the space between the prefix and the
prompt completion gets broken. That is:

In[20]: str.<TAB>

works as expected, but:

 In[20]:str.<TAB>

gets no completions. Looks to me like the prefix parser is not taking the
prompt into account, feeding it to ipython.




On Mon, Jul 28, 2014 at 1:35 AM, GNU bug Tracking System <
help-debbugs <at> gnu.org> wrote:

> Your bug report
>
> #18084: 24.3.92; python.el: buggy ipython support
>
> which was filed against the emacs package, has been closed.
>
> The explanation is attached below, along with your original report.
> If you require more details, please reply to 18084 <at> debbugs.gnu.org.
>
> --
> 18084: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18084
> GNU Bug Tracking System
> Contact help-debbugs <at> gnu.org with problems
>
>
> ---------- Forwarded message ----------
> From: fgallina <at> gnu.org (Fabián Ezequiel Gallina)
> To: 18084-done <at> debbugs.gnu.org
> Cc:
> Date: Mon, 28 Jul 2014 01:34:27 -0300
> Subject: 24.3.92; python.el: buggy ipython support
>
> Fixed at revno 117595 in trunk.
>
> Also revno 117580 includes relevant changes on shell font-locking.
>
>
> Cheers,
> Fabián
>
>
>
> ---------- Forwarded message ----------
> From: Carlos Pita <carlosjosepita <at> gmail.com>
> To: bug-gnu-emacs <at> gnu.org
> Cc:
> Date: Tue, 22 Jul 2014 17:54:12 -0300
> Subject: 24.3.92; python.el: buggy ipython support
> Ipython is pretty smart doing autocompletion and output coloring but
> python.el is currently getting in its way:
>
> 1) The coloring is heuristic at best. It's ok for the vanilla python
> interpreter but not nearly as good as ipython's. Not only keywords and
> identifiers are colored in non-code contexts, but also string quoting
> gets often messed up. I think the best option is to disable font lock by
> default when the interpreter is ipython.
>
> 2) Autocompletion of magic commands is broken. Autocompletion of paths
> is broken. Maybe another kind of ipython specific autocompletion is
> broken too. Currently the autocompletion prefix is parsed from the
> buffer using a "dotty" syntax table that includes '.' and '_' as part of
> identifiers. Clearly this is not enough to play well with ipython. But
> fortunately it's not necessary to be too smart. Sendind the prefix up to
> the first preceding whitespace char will do the trick.
>
> So I propose to:
>
> i) Disable font lock by default for ipython.
> ii) Parsing the prefix up to whitespace char for ipython autocompletion.
>
> I think these solutions are very simple and will improve the ipython
> experience a lot. Obviously the color theme will differ from the one for
> python-mode but this is a minor annoyance for such gain in simplicity.
>
> -----------
>
> In GNU Emacs 24.3.92.1 (i686-pc-linux-gnu, GTK+ Version 3.12.2)
>  of 2014-07-22 on carlos
> Windowing system distributor `The X.Org Foundation', version 11.0.11502000
> Configured using:
>  `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
>  --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
>  'CFLAGS=-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong
>  --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
>  LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'
>
>
>
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#18084; Package emacs. (Mon, 28 Jul 2014 21:11:02 GMT) Full text and rfc822 format available.

Message #16 received at 18084 <at> debbugs.gnu.org (full text, mbox):

From: fgallina <at> gnu.org (Fabián Ezequiel Gallina)
To: Carlos Pita <carlosjosepita <at> gmail.com>
Cc: 18084 <at> debbugs.gnu.org
Subject: Re: bug#18084: closed (24.3.92; python.el: buggy ipython support)
Date: Mon, 28 Jul 2014 18:10:51 -0300
Carlos Pita <carlosjosepita <at> gmail.com> writes:

> Good work! It's working very well, che :). Till now I just was able to
> found this one quirk: if you delete the space between the prefix and
> the prompt completion gets broken. That is:
>
> In[20]: str.<TAB>
>
> works as expected, but:
>
> In[20]:str.<TAB>
>
> gets no completions. Looks to me like the prefix parser is not taking
> the prompt into account, feeding it to ipython.
>

Which is expected, as the end of prompt is the last resort for our input
prefix start when looking for completions.

Revno 117605 makes inferior-python-mode to set comint-prompt-read-only
to t so messing around with the input prompt is not allowed.


Regards,
Fabián




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 26 Aug 2014 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 9 years and 255 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.