mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
Fix Python completion when point in shell buffer is before prompt
* lisp/progmodes/python.el (python-shell-completion-at-point): Limit prompt boundaries check to shell buffer. * test/lisp/progmodes/python-tests.el (python-shell-completion-2): (python-shell-completion-native-2): New tests (bug#58441).
This commit is contained in:
parent
2953d89d74
commit
aa559c1553
@ -4069,7 +4069,8 @@ With argument MSG show activation/deactivation message."
|
||||
Optional argument PROCESS forces completions to be retrieved
|
||||
using that one instead of current buffer's process."
|
||||
(setq process (or process (get-buffer-process (current-buffer))))
|
||||
(let* ((line-start (if (derived-mode-p 'inferior-python-mode)
|
||||
(let* ((is-shell-buffer (derived-mode-p 'inferior-python-mode))
|
||||
(line-start (if is-shell-buffer
|
||||
;; Working on a shell buffer: use prompt end.
|
||||
(cdr (python-util-comint-last-prompt))
|
||||
(line-beginning-position)))
|
||||
@ -4100,7 +4101,8 @@ using that one instead of current buffer's process."
|
||||
(completion-fn
|
||||
(with-current-buffer (process-buffer process)
|
||||
(cond ((or (null prompt)
|
||||
(< (point) (cdr prompt-boundaries)))
|
||||
(and is-shell-buffer
|
||||
(< (point) (cdr prompt-boundaries))))
|
||||
#'ignore)
|
||||
((or (not python-shell-completion-native-enable)
|
||||
;; Even if native completion is enabled, for
|
||||
|
@ -4411,6 +4411,22 @@ import abc
|
||||
(insert "A")
|
||||
(should (completion-at-point)))))
|
||||
|
||||
(ert-deftest python-shell-completion-2 ()
|
||||
"Should work regardless of the point in the Shell buffer."
|
||||
(skip-unless (executable-find python-tests-shell-interpreter))
|
||||
(python-tests-with-temp-buffer-with-shell
|
||||
"
|
||||
import abc
|
||||
"
|
||||
(let ((inhibit-message t))
|
||||
(python-shell-send-buffer)
|
||||
(python-tests-shell-wait-for-prompt)
|
||||
(python-shell-with-shell-buffer
|
||||
(goto-char (point-min)))
|
||||
(goto-char (point-max))
|
||||
(insert "abc.")
|
||||
(should (completion-at-point)))))
|
||||
|
||||
(ert-deftest python-shell-completion-native-1 ()
|
||||
(skip-unless (executable-find python-tests-shell-interpreter))
|
||||
(python-tests-with-temp-buffer-with-shell
|
||||
@ -4427,6 +4443,23 @@ import abc
|
||||
(insert "A")
|
||||
(should (completion-at-point)))))
|
||||
|
||||
(ert-deftest python-shell-completion-native-2 ()
|
||||
"Should work regardless of the point in the Shell buffer."
|
||||
(skip-unless (executable-find python-tests-shell-interpreter))
|
||||
(python-tests-with-temp-buffer-with-shell
|
||||
"
|
||||
import abc
|
||||
"
|
||||
(let ((inhibit-message t))
|
||||
(python-shell-completion-native-turn-on)
|
||||
(python-shell-send-buffer)
|
||||
(python-tests-shell-wait-for-prompt)
|
||||
(python-shell-with-shell-buffer
|
||||
(goto-char (point-min)))
|
||||
(goto-char (point-max))
|
||||
(insert "abc.")
|
||||
(should (completion-at-point)))))
|
||||
|
||||
(ert-deftest python-shell-completion-native-with-ffap-1 ()
|
||||
(skip-unless (executable-find python-tests-shell-interpreter))
|
||||
(python-tests-with-temp-buffer-with-shell
|
||||
|
Loading…
Reference in New Issue
Block a user