GNU bug report logs - #59421
28.2; python-mode breaks literal tabs when entering a command in the buffer

Previous Next

Package: emacs;

Reported by: Alexandre Hannud Abdo <abdo <at> member.fsf.org>

Date: Sun, 20 Nov 2022 21:50:02 UTC

Severity: normal

Found in version 28.2

To reply to this bug, email your comments to 59421 AT debbugs.gnu.org.

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#59421; Package emacs. (Sun, 20 Nov 2022 21:50:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alexandre Hannud Abdo <abdo <at> member.fsf.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 20 Nov 2022 21:50:02 GMT) Full text and rfc822 format available.

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

From: Alexandre Hannud Abdo <abdo <at> member.fsf.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 28.2; python-mode breaks literal tabs when entering a command in the
 buffer
Date: Sun, 20 Nov 2022 22:49:36 +0100
[Message part 1 (text/plain, inline)]
Ni! Hello,

I notice that python-mode is interpreting literal tabs when receiving a command from the buffer, which notably becomes an issue when pasting data, e.g. from "tab separated" table into a string. It also affects pasting code containing tabs, but strangely doesn't affect indentation tabs, so only the string case seems of concern.

After starting emacs and 'M-x run-python':

```
Python 3.9.9 (main, Jan  1 1970, 00:00:01)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: text = "F    oo"

0__dummy_completion__  1__dummy_completion__

In [5]: text
Out[5]: 'Foo'

In [6]:
```

At "In [1]", the spaces after "F" should be replaced by a literal TAB (pasted or C-q TAB).
At "In [5]", the TAB is absent in the variable "text".
This works fine in a regular ipython REPL.

This is bugging me as I haven't found any way to use text with TABs in emacs python-mode.
It seems to have been treated as a completion trigger, given the dummy completion messages.

More generally:

This works in a regular ipython REPL, but doesn't within emacs:

```
In [7]: def    foo(): pass
def

0__dummy_completion__  1__dummy_completion__
  Input In [15]
    deffoo(): pass
              ^
SyntaxError: invalid syntax


In [8]:
```

At "In [7]" the spaces after "def" should be replaced by a literal TAB.
This also works fine in a regular ipython REPL.

Surprisingly, the code below (replacing space indentations by literal TABs) works, though the dummy completion messages are still there.

```
In [9]: for _ in []:
    ...:     for _ in []:

0__dummy_completion__  1__dummy_completion__
    ...:         pass

0__dummy_completion__  1__dummy_completion__

0__dummy_completion__  1__dummy_completion__
    ...:

In [10]:
```

Let me know if I can help. Best,

ale
--

In GNU Emacs 28.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101003
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash
 --prefix=/gnu/store/gxjwd3q2iy3hgzwnc37mcnvfiv2s1pxz-emacs-28.2
 --enable-fast-install --with-modules --with-cairo
 --with-native-compilation --disable-build-details'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF
TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM GTK3 ZLIB

Important settings:
  value of $EMACSLOADPATH: /home/eris/.guix-profile/share/emacs/site-lisp:/home/eris/.guix-profile/share/emacs/site-lisp:/gnu/store/gxjwd3q2iy3hgzwnc37mcnvfiv2s1pxz-emacs-28.2/share/emacs/28.2/lisp
  value of $EMACSNATIVELOADPATH: /home/eris/.guix-profile/lib/emacs/native-site-lisp:/home/eris/.guix-profile/lib/emacs/native-site-lisp
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Inferior Python

Minor modes in effect:
  compilation-shell-minor-mode: t
  shell-dirtrack-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  save-place-mode: t
  savehist-mode: t
  recentf-mode: t
  global-linum-mode: t
  linum-mode: t
  windmove-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/gnu/store/gcvj3grb55ic034b9a56p6m182b2qfdr-emacs-nadvice-0.3/share/emacs/site-lisp/nadvice-0.3/nadvice hides /gnu/store/gxjwd3q2iy3hgzwnc37mcnvfiv2s1pxz-emacs-28.2/share/emacs/28.2/lisp/emacs-lisp/nadvice

Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils vc-mtn
vc-hg vc-git diff-mode easy-mmode vc-bzr vc-src vc-sccs vc-svn vc-cvs
vc-rcs vc vc-dispatcher ibuffer-vc ibuf-ext ibuffer ibuffer-loaddefs
compile text-property-search python tramp-sh tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat shell pcomplete
parse-time iso8601 time-date ls-lisp format-spec auth-source eieio
eieio-core cl-macs eieio-loaddefs password-cache json subr-x map comint
ring ansi-color dired-aux dired dired-loaddefs paredit skeleton
yasnippet-snippets cl-extra cl-seq yasnippet help-mode undo-tree diff
queue saveplace savehist recentf tree-widget wid-edit linum windmove
edmacro kmacro cl-loaddefs cl-lib paredit-autoloads
yasnippet-snippets-autoloads queue-autoloads undo-tree-autoloads
ibuffer-vc-autoloads yaml-mode-autoloads markdown-mode-autoloads
compat-autoloads async-autoloads with-editor-autoloads magit-autoloads
reformatter-autoloads python-black-autoloads magit-popup-autoloads
geiser-guile-autoloads geiser-autoloads edit-indirect-autoloads
dash-autoloads bui-autoloads guix-autoloads rx s-autoloads
pyvenv-autoloads yasnippet-autoloads highlight-indentation-autoloads
find-file-in-project-autoloads company-autoloads elpy-autoloads
guix-emacs seq byte-opt gv bytecomp byte-compile cconv iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit x multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 168337 4461)
 (symbols 48 14202 0)
 (strings 32 47024 3692)
 (string-bytes 1 1717737)
 (vectors 16 25865)
 (vector-slots 8 517852 13516)
 (floats 8 50 71)
 (intervals 56 588 0)
 (buffers 992 15))

[Message part 2 (text/html, inline)]

This bug report was last modified 1 year and 157 days ago.

Previous Next


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