Fix python navigation problem with an empty line in nested defun

* lisp/progmodes/python.el (python-nav--beginning-of-defun): Fix
bug when point is on an empty line (bug#56600).
This commit is contained in:
kobarity
2022-07-16 18:14:15 +02:00
committed by Lars Ingebrigtsen
parent 9b5eb661bf
commit 35d0a2e0a7
2 changed files with 48 additions and 15 deletions

View File

@@ -1876,7 +1876,7 @@ class C(object):
(beginning-of-line)
(point))))
;; Nested defuns should be skipped.
(python-tests-look-at "return a" -1)
(forward-line -1)
(should (= (save-excursion
(python-nav-beginning-of-defun)
(point))
@@ -1885,6 +1885,15 @@ class C(object):
(beginning-of-line)
(point))))
;; Defuns on same levels should be respected.
(python-tests-look-at "if True:" -1)
(forward-line -1)
(should (= (save-excursion
(python-nav-beginning-of-defun)
(point))
(save-excursion
(python-tests-look-at "def a():" -1)
(beginning-of-line)
(point))))
(python-tests-look-at "def a():" -1)
(should (= (save-excursion
(python-nav-beginning-of-defun)
@@ -1893,8 +1902,16 @@ class C(object):
(python-tests-look-at "def b():" -1)
(beginning-of-line)
(point))))
;; Jump to a top level defun.
;; Jump to an upper level defun.
(python-tests-look-at "def b():" -1)
(should (= (save-excursion
(python-nav-beginning-of-defun)
(point))
(save-excursion
(python-tests-look-at "def m(self):" -1)
(beginning-of-line)
(point))))
(forward-line -1)
(should (= (save-excursion
(python-nav-beginning-of-defun)
(point))
@@ -2009,6 +2026,15 @@ class C(object):
(python-tests-look-at "def c(self):")
(forward-line -1)
(point))))
(should (= (save-excursion
(python-tests-look-at "def b():")
(forward-line -1)
(python-nav-end-of-defun)
(point))
(save-excursion
(python-tests-look-at "def c(self):")
(forward-line -1)
(point))))
(should (= (save-excursion
(python-tests-look-at "def b():")
(python-nav-end-of-defun)
@@ -2017,6 +2043,10 @@ class C(object):
(python-tests-look-at "def b():")
(forward-line 2)
(point))))
(should (not (save-excursion
(python-tests-look-at "def a():")
(forward-line -1)
(python-nav-end-of-defun))))
(should (= (save-excursion
(python-tests-look-at "def c(self):")
(python-nav-end-of-defun)