]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/textmodes/page-ext.el: Misc cleanup, add RET binding
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 27 Sep 2017 17:00:44 +0000 (13:00 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 27 Sep 2017 17:00:44 +0000 (13:00 -0400)
Use lexical-binding.
Remove redundant :group args.
(pages-directory-mode-map): Bind RET.
(pages-buffer, pages-pos-list): Define as buffer-local.
(pages-directory-map): Define as alias *before* the defvar.
Mark as obsolete.
(pages-buffer-original-position, pages-buffer-original-page):
Move declaration to before the first use.
(pages-directory): Remove unused var `linenum`.
(pages-directory-goto): Add optional `event` arg and make it work when
bound to mouse events.
(pages-directory-goto-with-mouse): Make it an obsolete alias.

lisp/textmodes/page-ext.el

index 94b68decfb745677416d03787c5188cf6b17962a..bf1e33bf0f6abf3a97c83ea2738e4b80c1677eaa 100644 (file)
@@ -1,4 +1,4 @@
-;;; page-ext.el --- extended page handling commands
+;;; page-ext.el --- extended page handling commands  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 1990-1991, 1993-1994, 2001-2017 Free Software
 ;; Foundation, Inc.
 
 (defcustom pages-directory-buffer-narrowing-p t
   "If non-nil, `pages-directory-goto' narrows pages buffer to entry."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 (defcustom pages-directory-for-adding-page-narrowing-p t
   "If non-nil, `add-new-page' narrows page buffer to new entry."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 (defcustom pages-directory-for-adding-new-page-before-current-page-p t
   "If non-nil, `add-new-page' inserts new page before current page."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 \f
 ;;; Addresses related variables
 (defcustom pages-addresses-file-name "~/addresses"
   "Standard name for file of addresses. Entries separated by page-delimiter.
 Used by `pages-directory-for-addresses' function."
-  :type 'file
-  :group 'pages)
+  :type 'file)
 
 (defcustom pages-directory-for-addresses-goto-narrowing-p t
   "If non-nil, `pages-directory-goto' narrows addresses buffer to entry."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 (defcustom pages-directory-for-addresses-buffer-keep-windows-p t
   "If nil, `pages-directory-for-addresses' deletes other windows."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 (defcustom pages-directory-for-adding-addresses-narrowing-p t
   "If non-nil, `add-new-page' narrows addresses buffer to new entry."
-  :type 'boolean
-  :group 'pages)
+  :type 'boolean)
 
 \f
 ;;; Key bindings for page handling functions
@@ -415,9 +408,9 @@ Point is left in the body of page."
 Called from a program, there are three arguments:
 REVERSE (non-nil means reverse order), BEG and END (region to sort)."
 
-;;; This sort function handles ends of pages differently than
-;;; `sort-pages' and works better with lists of addresses and similar
-;;; files.
+  ;; This sort function handles ends of pages differently than
+  ;; `sort-pages' and works better with lists of addresses and similar
+  ;; files.
 
   (interactive "P\nr")
   (save-restriction
@@ -463,25 +456,27 @@ REVERSE (non-nil means reverse order), BEG and END (region to sort)."
 \(This regular expression may be used to select only those pages that
 contain matches to the regexp.)")
 
-(defvar pages-buffer nil
+(defvar-local pages-buffer nil
   "The buffer for which the pages-directory function creates the directory.")
 
 (defvar pages-directory-prefix "*Directory for:"
   "Prefix of name of temporary buffer for pages-directory.")
 
-(defvar pages-pos-list nil
+(defvar-local pages-pos-list nil
   "List containing the positions of the pages in the pages-buffer.")
 
 (defvar pages-target-buffer)
 
+(define-obsolete-variable-alias 'pages-directory-map
+  'pages-directory-mode-map "26.1")
 (defvar pages-directory-mode-map
   (let ((map (make-sparse-keymap)))
     (define-key map "\C-c\C-c" 'pages-directory-goto)
+    (define-key map "\C-m" 'pages-directory-goto)
     (define-key map "\C-c\C-p\C-a" 'add-new-page)
-    (define-key map [mouse-2] 'pages-directory-goto-with-mouse)
+    (define-key map [mouse-2] 'pages-directory-goto)
     map)
   "Keymap for the pages-directory-buffer.")
-(defvaralias 'pages-directory-map 'pages-directory-mode-map)
 
 (defvar original-page-delimiter "^\f"
   "Default page delimiter.")
@@ -512,6 +507,9 @@ resets the page-delimiter to the original value."
 \f
 ;;; Pages directory main definitions
 
+(defvar pages-buffer-original-position)
+(defvar pages-buffer-original-page)
+
 (defun pages-directory
   (pages-list-all-headers-p count-lines-p &optional regexp)
   "Display a directory of the page headers in a temporary buffer.
@@ -573,7 +571,6 @@ directory for only the accessible portion of the buffer."
   (let ((pages-target-buffer (current-buffer))
         (pages-directory-buffer
         (concat pages-directory-prefix " " (buffer-name)))
-        (linenum 1)
         (pages-buffer-original-position (point))
         (pages-buffer-original-page 0))
 
@@ -644,10 +641,6 @@ directory for only the accessible portion of the buffer."
                       1
                     pages-buffer-original-page))))
 
-(defvar pages-buffer-original-position)
-(defvar pages-buffer-original-page)
-(defvar pages-buffer-original-page)
-
 (defun pages-copy-header-and-position (count-lines-p)
   "Copy page header and its position to the Pages Directory.
 Only arg non-nil, count lines in page and insert before header.
@@ -701,16 +694,13 @@ Used by `pages-directory' function."
 
 Move point to one of the lines in this buffer, then use \\[pages-directory-goto] to go
 to the same line in the pages buffer."
-  (make-local-variable 'pages-buffer)
-  (make-local-variable 'pages-pos-list)
   (make-local-variable 'pages-directory-buffer-narrowing-p))
 
-(defun pages-directory-goto ()
+(defun pages-directory-goto (&optional event)
   "Go to the corresponding line in the pages buffer."
-
-;;; This function is mostly a copy of `occur-mode-goto-occurrence'
-
-  (interactive)
+  ;; This function is mostly a copy of `occur-mode-goto-occurrence'
+  (interactive "@e")
+  (if event (mouse-set-point event))
   (if (or (not pages-buffer)
          (not (buffer-name pages-buffer)))
       (progn
@@ -724,18 +714,13 @@ to the same line in the pages buffer."
          (narrowing-p  pages-directory-buffer-narrowing-p))
     (pop-to-buffer pages-buffer)
     (widen)
-    (if end-of-directory-p
-        (goto-char (point-max))
-      (goto-char (marker-position pos)))
+    (goto-char (if end-of-directory-p
+                   (point-max)
+                 (marker-position pos)))
     (if narrowing-p (narrow-to-page))))
 
-(defun pages-directory-goto-with-mouse  (event)
-  "Go to the corresponding line under the mouse pointer in the pages buffer."
-  (interactive "e")
-  (with-current-buffer (window-buffer (posn-window (event-end event)))
-    (save-excursion
-      (goto-char (posn-point (event-end event)))
-      (pages-directory-goto))))
+(define-obsolete-function-alias 'pages-directory-goto-with-mouse
+  #'pages-directory-goto "26.1")
 \f
 ;;; The `pages-directory-for-addresses' function and ancillary code