Subject: [PATCH] Fix customization group of python-forward-sexp-function

From: Kévin Le Gouguec <[email-masked]>
Date: Sat, 13 Nov 2021 10:54:18 +0100

Tags: patch

Version: 28.0.60

python-forward-sexp-function was introduced in 2021-07-31 "Add new user
option python-forward-sexp-function" (2dcb0f8f52); due to where it was
inserted in python.el, it is currently sorted in the python-flymake
customization group, which AFAICT is not what we want.

Here are the "design considerations" that went into this patch:

1. Should the defcustom be moved?

I'm leaning toward yes; as things stand it was lost in the middle of
unrelated flymake code.  IMO the places that make the most sense are
either (1) the ";;; Navigation" subsection or (2) closer to the
definition of python-mode, where the option is actually used.

Of course, it could also be left in its current position, and have an
explicit :group clause.  Which leads to…

2. Should the defcustom have an explicit :group clause?

I'm leaning toward no: (1) it's not needed if we move it to an earlier
subsection, (2) M-s o defcustom\|:group shows that a bunch of options
use implicit groups already, (3) AFAICT the repo history shows a clear
trend toward removing "redundant" :group clauses.

Thanks for your time.

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.30, cairo version 1.16.0)
 of 2021-10-30 built on amdahl30
Repository revision: c30f95078c0735447c0bf293f2e6f573bc7057a3
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: openSUSE Tumbleweed

Configured using:
 'configure --with-cairo --with-gconf'

>From b36c7934ee42b97429d5651b74a5f7e35ed61440 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Le=20Gouguec?= <[email-masked]>
Date: Sat, 13 Nov 2021 10:26:59 +0100
Subject: [PATCH] Fix customization group of python-forward-sexp-function

* lisp/progmodes/python.el (python-forward-sexp-function): Move from
the "Flymake integration" subsection to the "Navigation" subsection,
so that the option is sorted into the 'python' group rather than the
'python-flymake' group.
---
 lisp/progmodes/python.el | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index f1c3e75bb7..16b5176be8 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1427,6 +1427,13 @@ python-mark-defun
 
 ;;; Navigation
 
+(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 python-nav-beginning-of-defun-regexp
   (python-rx line-start (* space) defun (+ space) (group symbol-name))
   "Regexp matching class or function definition.
@@ -5569,13 +5576,6 @@ python-flymake-msg-alist
   :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)
-- 
2.33.1