X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/9e69cb054d5c124bdf913c82453518ac4d9d6d53..99a33b77e15b9a075024701d060d912b2fd87caf:/lisp/help-mode.el diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 9d10d5170b..642dac71ba 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el @@ -1,7 +1,7 @@ ;;; help-mode.el --- `help-mode' used by *Help* buffers -;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, -;; 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1985-1986, 1993-1994, 1998-2011 +;; Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal @@ -33,18 +33,19 @@ (require 'view) (eval-when-compile (require 'easymenu)) -(defvar help-mode-map (make-sparse-keymap) +(defvar help-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map button-buffer-map) + + (define-key map [mouse-2] 'help-follow-mouse) + (define-key map "\C-c\C-b" 'help-go-back) + (define-key map "\C-c\C-f" 'help-go-forward) + (define-key map "\C-c\C-c" 'help-follow-symbol) + ;; Documentation only, since we use minor-mode-overriding-map-alist. + (define-key map "\r" 'help-follow) + map) "Keymap for help mode.") -(set-keymap-parent help-mode-map button-buffer-map) - -(define-key help-mode-map [mouse-2] 'help-follow-mouse) -(define-key help-mode-map "\C-c\C-b" 'help-go-back) -(define-key help-mode-map "\C-c\C-f" 'help-go-forward) -(define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) -;; Documentation only, since we use minor-mode-overriding-map-alist. -(define-key help-mode-map "\r" 'help-follow) - (easy-menu-define help-mode-menu help-mode-map "Menu for Help Mode." '("Help-Mode" @@ -161,7 +162,7 @@ The format is (FUNCTION ARGS...).") (define-button-type 'help-info-variable :supertype 'help-xref ;; the name of the variable is put before the argument to Info - 'help-function (lambda (a v) (info v)) + 'help-function (lambda (_a v) (info v)) 'help-echo (purecopy "mouse-2, RET: read this Info node")) (define-button-type 'help-info @@ -255,6 +256,15 @@ The format is (FUNCTION ARGS...).") 'help-function (lambda (file) (dired file)) 'help-echo (purecopy "mouse-2, RET: visit package directory")) +(define-button-type 'help-theme-def + :supertype 'help-xref + 'help-function 'find-file + 'help-echo (purecopy "mouse-2, RET: visit theme file")) + +(define-button-type 'help-theme-edit + :supertype 'help-xref + 'help-function 'customize-create-theme + 'help-echo (purecopy "mouse-2, RET: edit this theme file")) ;;;###autoload (defun help-mode () @@ -316,6 +326,15 @@ Commands: ;; View mode's read-only status of existing *Help* buffer is lost ;; by with-output-to-temp-buffer. (toggle-read-only 1) + + (save-excursion + (goto-char (point-min)) + (let ((inhibit-read-only t)) + (when (re-search-forward "^This [^[:space:]]+ is advised.$" nil t) + (put-text-property (match-beginning 0) + (match-end 0) + 'face 'font-lock-warning-face)))) + (help-make-xrefs (current-buffer)))) ;; Grokking cross-reference information in doc strings and @@ -390,13 +409,16 @@ restore it properly when going back." (defun help-buffer () "Return the name of a buffer for inserting help. If `help-xref-following' is non-nil, this is the name of the -current buffer. -Otherwise, it is *Help*; if no buffer with that name currently -exists, it is created." +current buffer. Signal an error if this buffer is not derived +from `help-mode'. +Otherwise, return \"*Help*\", creating a buffer with that name if +it does not already exist." (buffer-name ;for with-output-to-temp-buffer - (if help-xref-following - (current-buffer) - (get-buffer-create "*Help*")))) + (if (not help-xref-following) + (get-buffer-create "*Help*") + (unless (derived-mode-p 'help-mode) + (error "Current buffer is not in Help mode")) + (current-buffer)))) (defvar help-xref-override-view-map (let ((map (make-sparse-keymap))) @@ -756,7 +778,7 @@ help buffer." (help-xref-go-forward (current-buffer)) (error "No next help buffer"))) -(defun help-do-xref (pos function args) +(defun help-do-xref (_pos function args) "Call the help cross-reference function FUNCTION with args ARGS. Things are set up properly so that the resulting help-buffer has a proper [back] button." @@ -797,7 +819,7 @@ Show all docs for that symbol as either a variable, function or face." (fboundp sym) (facep sym)) (help-do-xref pos #'help-xref-interned (list sym))))) -(defun help-mode-revert-buffer (ignore-auto noconfirm) +(defun help-mode-revert-buffer (_ignore-auto noconfirm) (when (or noconfirm (yes-or-no-p "Revert help buffer? ")) (let ((pos (point)) (item help-xref-stack-item) @@ -820,5 +842,4 @@ help buffer by other means." (provide 'help-mode) -;; arch-tag: 850954ae-3725-4cb4-8e91-0bf6d52d6b0b ;;; help-mode.el ends here