* bug#15722: [PATCH] Man: Add menu.
@ 2013-10-26 12:26 Rüdiger Sonderfeld
2013-10-26 19:07 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: Rüdiger Sonderfeld @ 2013-10-26 12:26 UTC (permalink / raw)
To: 15722
I wasn't sure if it is acceptable to use `cl-lib'. The check whether
there is a "SEE ALSO" section could be simplified to
(cl-member Man-see-also-regexp Man--sections :test #'string-match-p)
* lisp/man.el (man-imenu-title): New defcustom.
(Man-mode-map): Add menu entry.
(Man-mode): Add imenu to menu.
Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
---
lisp/man.el | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/lisp/man.el b/lisp/man.el
index 5619803..a9dcd98 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -368,6 +368,12 @@ (defvar Man-support-local-filenames 'auto-detect
Otherwise, the value is whatever the function
`Man-support-local-filenames' should return.")
+(defcustom man-imenu-title "Contents"
+ "The title to use if man adds a Contents menu to the menubar.
+Default is \"Contents\"."
+ :type 'string
+ :group 'man)
+
\f
;; other variables and keymap initializations
(defvar Man-original-frame)
@@ -446,6 +452,31 @@ (defvar Man-mode-map
;; manual page can contain references to other man pages
(define-key map "\r" 'man-follow)
(define-key map "?" 'describe-mode)
+
+ (easy-menu-define nil map
+ "`Man-mode' menu."
+ '("Man"
+ ["Next Section" Man-next-section t]
+ ["Previous Section" Man-previous-section t]
+ ["Go To Section..." Man-goto-section t]
+ ["Go To \"SEE ALSO\" Section" Man-goto-see-also-section
+ :active (let (m)
+ (dolist (sec Man--sections m)
+ (when (and (not m)
+ (string-match-p Man-see-also-regexp sec))
+ (setq m t))))]
+ ["Follow Reference..." Man-follow-manual-reference
+ :active Man--refpages
+ :help "Go to a manpage referred to in the \"SEE ALSO\" section"]
+ "--"
+ ["Next Manpage" Man-next-manpage
+ :active (> (length Man-page-list) 1)]
+ ["Previous Manpage" Man-previous-manpage
+ :active (> (length Man-page-list) 1)]
+ "--"
+ ["Man..." man t]
+ ["Kill Buffer" Man-kill t]
+ ["Quit" Man-quit t]))
map)
"Keymap for Man mode.")
@@ -1396,6 +1427,7 @@ (define-derived-mode Man-mode fundamental-mode "Man"
(buffer-disable-undo)
(auto-fill-mode -1)
(setq imenu-generic-expression (list (list nil Man-heading-regexp 0)))
+ (imenu-add-to-menubar man-imenu-title)
(set (make-local-variable 'outline-regexp) Man-heading-regexp)
(set (make-local-variable 'outline-level) (lambda () 1))
(set (make-local-variable 'bookmark-make-record-function)
--
1.8.4.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#15722: [PATCH] Man: Add menu.
2013-10-26 12:26 bug#15722: [PATCH] Man: Add menu Rüdiger Sonderfeld
@ 2013-10-26 19:07 ` Glenn Morris
2013-10-26 19:16 ` Rüdiger Sonderfeld
0 siblings, 1 reply; 4+ messages in thread
From: Glenn Morris @ 2013-10-26 19:07 UTC (permalink / raw)
To: Rüdiger Sonderfeld; +Cc: 15722
Rüdiger Sonderfeld wrote:
> I wasn't sure if it is acceptable to use `cl-lib'.
It is.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#15722: [PATCH] Man: Add menu.
2013-10-26 19:07 ` Glenn Morris
@ 2013-10-26 19:16 ` Rüdiger Sonderfeld
2013-10-27 2:04 ` Glenn Morris
0 siblings, 1 reply; 4+ messages in thread
From: Rüdiger Sonderfeld @ 2013-10-26 19:16 UTC (permalink / raw)
To: Glenn Morris; +Cc: 15722
* lisp/man.el (man-imenu-title): New defcustom.
(Man-mode-map): Add menu entry.
(Man-mode): Add imenu to menu.
Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
---
lisp/man.el | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/lisp/man.el b/lisp/man.el
index 5619803..76ce6c3 100644
--- a/lisp/man.el
+++ b/lisp/man.el
@@ -89,6 +89,7 @@
;;; Code:
(require 'ansi-color)
+(require 'cl-lib)
(require 'button)
(defgroup man nil
@@ -368,6 +369,12 @@ (defvar Man-support-local-filenames 'auto-detect
Otherwise, the value is whatever the function
`Man-support-local-filenames' should return.")
+(defcustom man-imenu-title "Contents"
+ "The title to use if man adds a Contents menu to the menubar.
+Default is \"Contents\"."
+ :type 'string
+ :group 'man)
+
\f
;; other variables and keymap initializations
(defvar Man-original-frame)
@@ -446,6 +453,28 @@ (defvar Man-mode-map
;; manual page can contain references to other man pages
(define-key map "\r" 'man-follow)
(define-key map "?" 'describe-mode)
+
+ (easy-menu-define nil map
+ "`Man-mode' menu."
+ '("Man"
+ ["Next Section" Man-next-section t]
+ ["Previous Section" Man-previous-section t]
+ ["Go To Section..." Man-goto-section t]
+ ["Go To \"SEE ALSO\" Section" Man-goto-see-also-section
+ :active (cl-member Man-see-also-regexp Man--sections
+ :test #'string-match-p)]
+ ["Follow Reference..." Man-follow-manual-reference
+ :active Man--refpages
+ :help "Go to a manpage referred to in the \"SEE ALSO\" section"]
+ "--"
+ ["Next Manpage" Man-next-manpage
+ :active (> (length Man-page-list) 1)]
+ ["Previous Manpage" Man-previous-manpage
+ :active (> (length Man-page-list) 1)]
+ "--"
+ ["Man..." man t]
+ ["Kill Buffer" Man-kill t]
+ ["Quit" Man-quit t]))
map)
"Keymap for Man mode.")
@@ -1396,6 +1425,7 @@ (define-derived-mode Man-mode fundamental-mode "Man"
(buffer-disable-undo)
(auto-fill-mode -1)
(setq imenu-generic-expression (list (list nil Man-heading-regexp 0)))
+ (imenu-add-to-menubar man-imenu-title)
(set (make-local-variable 'outline-regexp) Man-heading-regexp)
(set (make-local-variable 'outline-level) (lambda () 1))
(set (make-local-variable 'bookmark-make-record-function)
--
1.8.4.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#15722: [PATCH] Man: Add menu.
2013-10-26 19:16 ` Rüdiger Sonderfeld
@ 2013-10-27 2:04 ` Glenn Morris
0 siblings, 0 replies; 4+ messages in thread
From: Glenn Morris @ 2013-10-27 2:04 UTC (permalink / raw)
To: 15722-done
Version: 24.4
Thank you, applied. Trivial comments follow:
Rüdiger Sonderfeld wrote:
> +(defcustom man-imenu-title "Contents"
> + "The title to use if man adds a Contents menu to the menubar.
> +Default is \"Contents\"."
No need to say what the default is, since that information is
automatically available. New defcustoms need :version tags.
BTW, I suggest you create a Savannah account and request membership of
the Emacs project so that you can commit these things yourself.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-10-27 2:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-26 12:26 bug#15722: [PATCH] Man: Add menu Rüdiger Sonderfeld
2013-10-26 19:07 ` Glenn Morris
2013-10-26 19:16 ` Rüdiger Sonderfeld
2013-10-27 2:04 ` Glenn Morris
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.