GNU bug report logs - #77853
30.1; python-inferior-mode: completion regression

Previous Next

Package: emacs;

Reported by: Christian Sattler <sattler.christian <at> gmail.com>

Date: Wed, 16 Apr 2025 23:44:03 UTC

Severity: normal

Found in version 30.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: kobarity <kobarity <at> gmail.com>
To: Liu Hui <liuhui1610 <at> gmail.com>
Cc: 77853 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, Christian Sattler <sattler.christian <at> gmail.com>
Subject: bug#77853: 30.1; python-inferior-mode: completion regression
Date: Mon, 21 Apr 2025 00:12:03 +0900
Liu Hui wrote:
> On Thu, Apr 17, 2025 at 2:29 PM Eli Zaretskii <eliz <at> gnu.org> wrote:
> >
> > > From: Christian Sattler <sattler.christian <at> gmail.com>
> > > Date: Wed, 16 Apr 2025 21:59:01 +0200
> > >
> > > Completing a non-existing prefix attempts to complete it as a filename.
> > >
> > > Steps to reproduce:
> > >
> > > 1. touch test.file
> > > 2. emacs -Q
> > > 3. M-x run-python
> > > 4. test
> > > 5. M-x python-shell-completion-complete-or-indent
> > >
> > > Outcome: incorrectly completes to test.file.
> > >
> > > This regression was introduced in commit 0b9c714. The function
> > > python-shell-completion-at-point now returns nil instead of an empty
> > > list of candidates. This causes the next element of
> > > completion-at-point-functions list to be tried. This is
> > > comint-completion-at-point and completes filenames, which does not
> > > make sense in this context.
> >
> > Thanks.
> >
> > Liu Hui and kobarity, any suggestions for how to fix that?  The fix
> > should be safe enough for the release branch, since the regression was
> > introduced by Emacs 30.1.
> 
> We can just remove comint-filename-completion from
> comint-dynamic-complete-functions, which is called by
> comint-completion-at-point in completion-at-point-functions.
> 
> Before commit 0b9c714, comint-filename-completion was actually not
> used due to python-shell-completion-at-point. Therefore, removing it
> is safe and acceptable.
> 
> Users who need proper filename completion in Python shell can use
> specialized completion backends, e.g.
> 
> 1. touch test.file
> 2. export PYTHONSTARTUP="$(python -m jedi repl)"; emacs -Q
> 3. M-x run-python
> 4. test<tab>         => no completion
> 5. open("test<tab>   => open("test.file"

I agree with this patch, but it failed to apply to both master and
emacs-30 branches.  Is this patch for the latest branch?




This bug report was last modified 21 days ago.

Previous Next


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