emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master cd151d0: Fix up previous change for column/line spec mechanism in


From: Lars Ingebrigtsen
Subject: master cd151d0: Fix up previous change for column/line spec mechanism in the mode line
Date: Thu, 17 Sep 2020 10:09:43 -0400 (EDT)

branch: master
commit cd151d06084bff6fa9ba48f8fa13b6bf24e8778c
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix up previous change for column/line spec mechanism in the mode line
    
    * lisp/bindings.el (column-number-indicator-zero-based): Make
    obsolete (bug#28648).
    (mode-line-position-column-line-format): New variable.
    (mode-line-position--column-line-properties): New const.
    (mode-line-position): Use it.
---
 doc/lispref/modes.texi |  9 +++++-
 etc/NEWS               |  8 ++---
 lisp/bindings.el       | 88 ++++++++++++++++++++++++++------------------------
 3 files changed, 57 insertions(+), 48 deletions(-)

diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index b77bcdb..1652cb6 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -2177,11 +2177,18 @@ number.
 The format used to display column numbers when
 @code{column-number-mode} (@pxref{Optional Mode Line,,, emacs, The GNU
 Emacs Manual}) is switched on.  @samp{%c} in the format will be
-replaced with the line number, and this is zero-based if
+replaced with the column number, and this is zero-based if
 @code{column-number-indicator-zero-based} is non-@code{nil}, and
 one-based if @code{column-number-indicator-zero-based} is @code{nil}.
 @end defvar
 
+@defvar mode-line-position-column-line-format
+The format used to display column numbers when both
+@code{line-number-mode} and @code{column-number-mode} are switched on.
+See the previous two variables for the meaning of the @samp{%l} and
+@samp{%c} format specs.
+@end defvar
+
 @defvar minor-mode-alist
 @anchor{Definition of minor-mode-alist}
 This variable holds an association list whose elements specify how the
diff --git a/etc/NEWS b/etc/NEWS
index 81a4273..e46b348 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1001,10 +1001,10 @@ window after starting).  This variable defaults to nil.
 +++
 *** New user options to control the look of line/column numbers in the mode 
line.
 'mode-line-position-line-format' is the line number format (when
-'line-number-mode' is on), and 'mode-line-position-column-format' is
-the column number format (when 'column-number-mode' is on).  These are
-also used if both modes are on, which leads to the default in that
-case going from "(5,9)" to "(L5,C9)".
+'line-number-mode' is on), 'mode-line-position-column-format' is
+the column number format (when 'column-number-mode' is on), and
+'mode-line-position-column-line-format' is the combined format (when
+both modes are on).
 
 +++
 *** New command 'submit-emacs-patch'.
diff --git a/lisp/bindings.el b/lisp/bindings.el
index bc9cccd..54e171e 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -411,6 +411,8 @@ zero, otherwise they start from one."
   :type 'boolean
   :group 'mode-line
   :version "26.1")
+(make-obsolete-variable 'column-number-indicator-zero-based
+                        'mode-line-position-column-format "28.1")
 
 (defcustom mode-line-percent-position '(-3 "%p")
   "Specification of \"percentage offset\" of window through buffer.
@@ -431,24 +433,41 @@ displayed in `mode-line-position', a component of the 
default
   :group 'mode-line)
 (put 'mode-line-percent-position 'risky-local-variable t)
 
-(defcustom mode-line-position-line-format "L%l"
+(defcustom mode-line-position-line-format '(-6 " L%l")
   "Format used to display line numbers in the mode line.
 This is used when `line-number-mode' is switched on.  The \"%l\"
 format spec will be replaced by the line number."
-  :type 'string
+  :type 'form
   :version "28.1"
   :group 'mode-line)
 
-(defcustom mode-line-position-column-format "C%c"
+(defcustom mode-line-position-column-format '(-6 " C%c")
   "Format used to display column numbers in the mode line.
 This is used when `column-number-mode' is switched on.  The
 \"%c\" format spec will be replaced by the column number, which
 is zero-based if `column-number-indicator-zero-based' is non-nil,
-and one-based if `column-number-indicator-zero-based' is nil."
-  :type 'string
+and one-based if `column-number-indicator-zero-based' is nil.."
+  :type 'form
   :version "28.1"
   :group 'mode-line)
 
+(defcustom mode-line-position-column-line-format '(-10 " (%l,%c)")
+  "Format used to display combined line/column numbers in the mode line.
+This is used when `column-number-mode' and `line-number-mode' are
+switched on.  The \"%c\" format spec will be replaced by the
+column number, which is zero-based if
+`column-number-indicator-zero-based' is non-nil, and one-based if
+`column-number-indicator-zero-based' is nil."
+  :type 'form
+  :version "28.1"
+  :group 'mode-line)
+
+(defconst mode-line-position--column-line-properties
+  (list 'local-map mode-line-column-line-number-mode-map
+        'mouse-face 'mode-line-highlight
+        'help-echo "Line number and Column number\n\
+mouse-1: Display Line and Column Mode Menu"))
+
 (defvar mode-line-position
   `((:propertize
      mode-line-percent-position
@@ -468,44 +487,27 @@ mouse-1: Display Line and Column Mode Menu")))
     (line-number-mode
      ((column-number-mode
        (column-number-indicator-zero-based
-        (10 ,(propertize
-              (format " (%s,%s)"
-                      mode-line-position-line-format
-                      mode-line-position-column-format)
-              'local-map mode-line-column-line-number-mode-map
-              'mouse-face 'mode-line-highlight
-              'help-echo "Line number and Column number\n\
-mouse-1: Display Line and Column Mode Menu"))
-        (10 ,(propertize
-              (format " (%s,%s)"
-                      mode-line-position-line-format
-                      (replace-in-string "%c" "%C"
-                                         mode-line-position-column-format))
-              'local-map mode-line-column-line-number-mode-map
-              'mouse-face 'mode-line-highlight
-              'help-echo "Line number and Column number\n\
-mouse-1: Display Line and Column Mode Menu")))
-       (6 ,(propertize
-           (format " %s" mode-line-position-line-format)
-           'local-map mode-line-column-line-number-mode-map
-           'mouse-face 'mode-line-highlight
-           'help-echo "Line Number\n\
-mouse-1: Display Line and Column Mode Menu"))))
-     ((column-number-mode
-       (column-number-indicator-zero-based
-        (5 ,(propertize
-             (format " %s" mode-line-position-column-format)
-             'local-map mode-line-column-line-number-mode-map
-             'mouse-face 'mode-line-highlight
-             'help-echo "Column number\n\
-mouse-1: Display Line and Column Mode Menu"))
-        (5 ,(propertize
-             (format " %s" (replace-in-string "%c" "%C"
-                                              
mode-line-position-column-format))
-             'local-map mode-line-column-line-number-mode-map
-             'mouse-face 'mode-line-highlight
-             'help-echo "Column number\n\
-mouse-1: Display Line and Column Mode Menu")))))))
+        (:propertize
+         mode-line-position-column-line-format
+         ,@mode-line-position--column-line-properties)
+        (:propertize
+         (,(car mode-line-position-column-line-format)
+          (:eval (replace-in-string
+                  "%c" "%C" (cadr mode-line-position-column-line-format))))
+         ,@mode-line-position--column-line-properties))
+       (:propertize
+       mode-line-position-line-format
+        ,@mode-line-position--column-line-properties)))
+     (column-number-mode
+      (column-number-indicator-zero-based
+       (:propertize
+        mode-line-position-column-format
+        ,@mode-line-position--column-line-properties)
+       (:propertize
+        (,(car mode-line-position-column-format)
+         (:eval (replace-in-string
+                 "%c" "%C" (cadr mode-line-position-column-format))))
+        ,@mode-line-position--column-line-properties)))))
   "Mode line construct for displaying the position in the buffer.
 Normally displays the buffer percentage and, optionally, the
 buffer size, the line number and the column number.")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]