]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new user option python-forward-sexp-function
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 31 Jul 2021 16:44:02 +0000 (18:44 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 31 Jul 2021 16:44:02 +0000 (18:44 +0200)
* lisp/progmodes/python.el (python-forward-sexp-function): New
user option (bug#41361).
(python-mode): Use it.

etc/NEWS
lisp/progmodes/python.el

index 40a5e512fb2c509160b5cdfc4f6f14a4729ff0c0..1a7f20bb8b494a974f80e4cc618aaf183b2f7116 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -593,6 +593,11 @@ This is used to fontify non-scalar variables.
 
 ** Python mode
 
+---
+*** New user option 'python-forward-sexp-function'.
+This allows the user to easier customize whether to use block-based
+navigation or not.
+
 *** 'python-shell-interpreter' now defaults to python3 on systems with python3.
 
 *** 'C-c C-r' can now be used on arbitrary regions.
index f7267bdef290ca1ad72a16237ea109340ea3ddce..2557704e40301257b8576bf93ffa7f05f217bc04 100644 (file)
 ;; `python-nav-backward-statement',
 ;; `python-nav-beginning-of-statement', `python-nav-end-of-statement',
 ;; `python-nav-beginning-of-block', `python-nav-end-of-block' and
-;; `python-nav-if-name-main' are included but no bound to any key.  At
-;; last but not least the specialized `python-nav-forward-sexp' allows
-;; easy navigation between code blocks.  If you prefer `cc-mode'-like
-;; `forward-sexp' movement, setting `forward-sexp-function' to nil is
-;; enough, You can do that using the `python-mode-hook':
-
-;; (add-hook 'python-mode-hook
-;;           (lambda () (setq forward-sexp-function nil)))
+;; `python-nav-if-name-main' are included but no bound to any key.
 
 ;; Shell interaction: is provided and allows opening Python shells
 ;; inside Emacs and executing any block of code of your current buffer
@@ -5505,6 +5498,13 @@ By default messages are considered errors."
   :type '(alist :key-type (regexp)
                 :value-type (symbol)))
 
+(defcustom python-forward-sexp-function #'python-nav-forward-sexp
+  "Function to use when navigating between expressions."
+  :version "28.1"
+  :type '(choice (const :tag "Python blocks" python-nav-forward-sexp)
+                 (const :tag "CC-mode like" nil)
+                 function))
+
 (defvar-local python--flymake-proc nil)
 
 (defun python--flymake-parse-output (source proc report-fn)
@@ -5602,7 +5602,7 @@ REPORT-FN is Flymake's callback function."
   (setq-local parse-sexp-lookup-properties t)
   (setq-local parse-sexp-ignore-comments t)
 
-  (setq-local forward-sexp-function #'python-nav-forward-sexp)
+  (setq-local forward-sexp-function python-forward-sexp-function)
 
   (setq-local font-lock-defaults
               `(,python-font-lock-keywords