GNU bug report logs -
#77853
30.1; python-inferior-mode: completion regression
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
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"
[0001-Fix-filename-completion-in-Python-shell-bug-77853.patch (text/x-patch, attachment)]
This bug report was last modified 22 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.