annotate lisp/help-at-pt.el @ 63194:acd4cec2decf

Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-365 Remove "-face" suffix from custom faces 2005-06-10 Miles Bader <miles@gnu.org> * lisp/cus-edit.el (custom-invalid, custom-rogue, custom-modified) (custom-set, custom-changed, custom-saved, custom-button) (custom-button-pressed, custom-documentation, custom-state) (custom-comment, custom-comment-tag, custom-variable-tag) (custom-variable-button, custom-face-tag, custom-group-tag-1) (custom-group-tag): Remove "-face" suffix from face names. (custom-magic-alist, custom-magic-value-create) (custom-group-sample-face-get, custom-mode): Use renamed custom faces. (custom-invalid-face, custom-rogue-face, custom-modified-face) (custom-set-face, custom-changed-face, custom-saved-face) (custom-button-face, custom-button-pressed-face) (custom-documentation-face, custom-state-face) (custom-comment-face, custom-comment-tag-face) (custom-variable-tag-face, custom-variable-button-face) (custom-face-tag-face, custom-group-tag-face-1) (custom-group-tag-face): New backward-compatibility aliases for renamed faces.
author Miles Bader <miles@gnu.org>
date Fri, 10 Jun 2005 07:16:58 +0000
parents aac0a33f5772
children 6fb026ad601f 3ebd9bdb4fe5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
1 ;;; help-at-pt.el --- local help through the keyboard
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
2
57798
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
3 ;; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
4
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
5 ;; Author: Luc Teirlinck <teirllm@auburn.edu>
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
6 ;; Keywords: help
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
7
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
9
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
13 ;; any later version.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
14
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
18 ;; GNU General Public License for more details.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
19
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
24
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
25 ;;; Commentary:
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
26
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
27 ;; This file contains functionality to make the help provided by the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
28 ;; help-echo text or overlay property available to the keyboard user.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
29 ;; It also supports a more keyboard oriented alternative to
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
30 ;; `help-echo', namely a new text or overlay property `kbd-help'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
31 ;;
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
32 ;; It provides facilities to access the local help available at point
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
33 ;; either on demand, using the command `display-local-help', or
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
34 ;; automatically after a suitable idle time, through the customizable
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
35 ;; variable `help-at-pt-display-when-idle'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
36 ;;
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
37 ;; You can get a more global overview of the local help available in
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
38 ;; the buffer, using the commands `scan-buf-next-region' and
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
39 ;; `scan-buf-previous-region', which move to the start of the next or
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
40 ;; previous region with available local help and print the help found
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
41 ;; there.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
42 ;;
54524
d3e10b0b1a2e Move suggestions for key bindings to Commentary.
Juri Linkov <juri@jurta.org>
parents: 54283
diff changeset
43 ;; Suggested key bindings:
d3e10b0b1a2e Move suggestions for key bindings to Commentary.
Juri Linkov <juri@jurta.org>
parents: 54283
diff changeset
44 ;;
d3e10b0b1a2e Move suggestions for key bindings to Commentary.
Juri Linkov <juri@jurta.org>
parents: 54283
diff changeset
45 ;; (global-set-key [C-tab] 'scan-buf-next-region)
d3e10b0b1a2e Move suggestions for key bindings to Commentary.
Juri Linkov <juri@jurta.org>
parents: 54283
diff changeset
46 ;; (global-set-key [C-M-tab] 'scan-buf-previous-region)
d3e10b0b1a2e Move suggestions for key bindings to Commentary.
Juri Linkov <juri@jurta.org>
parents: 54283
diff changeset
47 ;;
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
48 ;; You do not have to do anything special to use the functionality
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
49 ;; provided by this file, because all important functions autoload.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
50
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
51 ;;; Code:
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
52
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
53 (defgroup help-at-pt nil
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
54 "Features for displaying local help."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
55 :group 'help
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 59727
diff changeset
56 :version "22.1")
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
57
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
58 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
59 (defun help-at-pt-string (&optional kbd)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
60 "Return the help-echo string at point.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
61 Normally, the string produced by the `help-echo' text or overlay
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
62 property, or nil, is returned.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
63 If KBD is non-nil, `kbd-help' is used instead, and any
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
64 `help-echo' property is ignored. In this case, the return value
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
65 can also be t, if that is the value of the `kbd-help' property."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
66 (let* ((prop (if kbd 'kbd-help 'help-echo))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
67 (pair (get-char-property-and-overlay (point) prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
68 (val (car pair))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
69 (ov (cdr pair)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
70 (if (functionp val)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
71 (funcall val (selected-window) (if ov ov (current-buffer)) (point))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
72 (eval val))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
73
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
74 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
75 (defun help-at-pt-kbd-string ()
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
76 "Return the keyboard help string at point.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
77 If the `kbd-help' text or overlay property at point produces a
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
78 string, return it. Otherwise, use the `help-echo' property. If
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
79 this produces no string either, return nil."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
80 (let ((kbd (help-at-pt-string t))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
81 (echo (help-at-pt-string)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
82 (if (and kbd (not (eq kbd t))) kbd echo)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
83
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
84 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
85 (defun display-local-help (&optional arg)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
86 "Display local help in the echo area.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
87 This displays a short help message, namely the string produced by
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
88 the `kbd-help' property at point. If `kbd-help' does not produce
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
89 a string, but the `help-echo' property does, then that string is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
90 printed instead.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
91
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
92 A numeric argument ARG prevents display of a message in case
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
93 there is no help. While ARG can be used interactively, it is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
94 mainly meant for use from Lisp."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
95 (interactive "P")
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
96 (let ((help (help-at-pt-kbd-string)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
97 (if help
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
98 (message "%s" help)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
99 (if (not arg) (message "No local help at point")))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
100
57798
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
101 (defvar help-at-pt-timer nil
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
102 "Non-nil means that a timer is set that checks for local help.
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
103 If non-nil, this is the value returned by the call of
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
104 `run-with-idle-timer' that set that timer. This variable is used
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
105 internally to enable `help-at-pt-display-when-idle'. Do not set it
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
106 yourself.")
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
107
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
108 (defcustom help-at-pt-timer-delay 1
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
109 "*Delay before displaying local help.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
110 This is used if `help-at-pt-display-when-idle' is enabled.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
111 The value may be an integer or floating point number.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
112
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
113 If a timer is already active, there are two ways to make the new
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
114 value take effect immediately. After setting the value, you can
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
115 first call `help-at-pt-cancel-timer' and then set a new timer
54283
d0c3cadb7e21 (help-at-pt-timer-delay): Minor doc fix (remove stray space).
Luc Teirlinck <teirllm@auburn.edu>
parents: 53208
diff changeset
116 with `help-at-pt-set-timer'. Alternatively, you can set this
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
117 variable through Custom. This will not set a timer if none is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
118 active, but if one is already active, Custom will make it use the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
119 new value."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
120 :group 'help-at-pt
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
121 :type 'number
57798
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
122 :initialize 'custom-initialize-default
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
123 :set (lambda (variable value)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
124 (set-default variable value)
57798
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
125 (and (boundp 'help-at-pt-timer)
bb24af8f5452 (help-at-pt-timer): Move defvar up to avoid compiler warning.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57542
diff changeset
126 help-at-pt-timer
57802
edb9ccd02dbf (help-at-pt-timer-delay, help-at-pt-display-when-idle): Remove
Luc Teirlinck <teirllm@auburn.edu>
parents: 57798
diff changeset
127 (timer-set-idle-time help-at-pt-timer value t))))
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
128
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
129 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
130 (defun help-at-pt-cancel-timer ()
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
131 "Cancel any timer set by `help-at-pt-set-timer'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
132 This disables `help-at-pt-display-when-idle'."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
133 (interactive)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
134 (let ((inhibit-quit t))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
135 (when help-at-pt-timer
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
136 (cancel-timer help-at-pt-timer)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
137 (setq help-at-pt-timer nil))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
138
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
139 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
140 (defun help-at-pt-set-timer ()
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
141 "Enable `help-at-pt-display-when-idle'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
142 This is done by setting a timer, if none is currently active."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
143 (interactive)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
144 (unless help-at-pt-timer
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
145 (setq help-at-pt-timer
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
146 (run-with-idle-timer
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
147 help-at-pt-timer-delay t #'help-at-pt-maybe-display))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
148
59727
86b02098f260 (help-at-pt-display-when-idle): Add autoload cookie.
Luc Teirlinck <teirllm@auburn.edu>
parents: 57802
diff changeset
149 ;;;###autoload
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
150 (defcustom help-at-pt-display-when-idle 'never
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
151 "*Automatically show local help on point-over.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
152 If the value is t, the string obtained from any `kbd-help' or
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
153 `help-echo' property at point is automatically printed in the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
154 echo area, if nothing else is already displayed there, or after a
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
155 quit. If both `kbd-help' and `help-echo' produce help strings,
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
156 `kbd-help' is used. If the value is a list, the help only gets
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
157 printed if there is a text or overlay property at point that is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
158 included in this list. Suggested properties are `keymap',
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
159 `local-map', `button' and `kbd-help'. Any value other than t or
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
160 a non-empty list disables the feature.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
161
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
162 This variable only takes effect after a call to
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
163 `help-at-pt-set-timer'. The help gets printed after Emacs has
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
164 been idle for `help-at-pt-timer-delay' seconds. You can call
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
165 `help-at-pt-cancel-timer' to cancel the timer set by, and the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
166 effect of, `help-at-pt-set-timer'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
167
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
168 When this variable is set through Custom, `help-at-pt-set-timer'
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
169 is called automatically, unless the value is `never', in which
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
170 case `help-at-pt-cancel-timer' is called. Specifying an empty
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
171 list of properties through Custom will set the timer, thus
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
172 enabling buffer local values. It sets the actual value to nil.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
173 Thus, Custom distinguishes between a nil value and other values
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
174 that disable the feature, which Custom identifies with `never'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
175 The default is `never'."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
176 :group 'help-at-pt
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
177 :type '(choice (const :tag "Always"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
178 :format "%t\n%h"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
179 :doc
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
180 "This choice can get noisy.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
181 The text printed from the `help-echo' property is often only
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
182 relevant when using the mouse. If you mind about too many
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
183 messages getting printed in the echo area, use \"In certain
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
184 situations\". See the documentation there for more information."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
185 t)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
186 (repeat :tag "In certain situations"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
187 ;; unless we specify 0 offset the doc string
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
188 ;; for this choice gets indented very
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
189 ;; differently than for the other two
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
190 ;; choices, when "More" is selected.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
191 :offset 0
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
192 :format "%{%t%}:\n%v%i\n%h"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
193 :doc
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
194 "This choice lets you specify a list of \
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
195 text properties.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
196 Presence of any of these properties will trigger display of
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
197 available local help on point-over.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
198 If you use this alternative through Custom without listing any
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
199 properties, a timer will be set anyway. This will enable buffer
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
200 local values. Use \"Never\" if you do not want a timer to be set.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
201
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
202 Suggested properties:
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
203 The `keymap' and `local-map' properties change keybindings in
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
204 parts of the buffer. Some of these keymaps are mode independent
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
205 and are not mentioned in the mode documentation. Hence, the help
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
206 text is likely to be useful.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
207 Specifying `button' is relevant in Custom and similar buffers.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
208 In these buffers, most, but not all, of the text shown this way is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
209 available by default when using tab, but not on regular point-over.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
210 The presence of a `kbd-help' property guarantees that non mouse
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
211 specific help is available."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
212 :value (keymap local-map button kbd-help)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
213 symbol)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
214 (other :tag "Never"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
215 :format "%t\n%h"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
216 :doc
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
217 "This choice normally disables buffer local values.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
218 If you choose this value through Custom and a timer checking for
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
219 local help is currently active, it will be canceled. No new
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
220 timer will be set. Call `help-at-pt-set-timer' after choosing
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
221 this option, or use \"In certain situations\" and specify no text
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
222 properties, to enable buffer local values."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
223 never))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
224 :initialize 'custom-initialize-default
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
225 :set #'(lambda (variable value)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
226 (set-default variable value)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
227 (if (eq value 'never)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
228 (help-at-pt-cancel-timer)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
229 (help-at-pt-set-timer)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
230 :set-after '(help-at-pt-timer-delay)
57802
edb9ccd02dbf (help-at-pt-timer-delay, help-at-pt-display-when-idle): Remove
Luc Teirlinck <teirllm@auburn.edu>
parents: 57798
diff changeset
231 :require 'help-at-pt)
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
232
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
233 ;; Function for use in `help-at-pt-set-timer'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
234 (defun help-at-pt-maybe-display ()
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
235 (and (or (eq help-at-pt-display-when-idle t)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
236 (and (consp help-at-pt-display-when-idle)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
237 (catch 'found
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
238 (dolist (prop help-at-pt-display-when-idle)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
239 (if (get-char-property (point) prop)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
240 (throw 'found t))))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
241 (or (not (current-message))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
242 (string= (current-message) "Quit"))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
243 (display-local-help t)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
244
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
245 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
246 (defun scan-buf-move-to-region (prop &optional arg hook)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
247 "Go to the start of the next region with non-nil PROP property.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
248 Then run HOOK, which should be a quoted symbol that is a normal
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
249 hook.variable, or an expression evaluating to such a symbol.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
250 Adjacent areas with different non-nil PROP properties are
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
251 considered different regions.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
252
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
253 With numeric argument ARG, move to the start of the ARGth next
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
254 such region, then run HOOK. If ARG is negative, move backward.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
255 If point is already in a region, then that region does not count
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
256 toward ARG. If ARG is 0 and point is inside a region, move to
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
257 the start of that region. If ARG is 0 and point is not in a
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
258 region, print a message to that effect, but do not move point and
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
259 do not run HOOK. If there are not enough regions to move over,
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
260 an error results and the number of available regions is mentioned
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
261 in the error message. Point is not moved and HOOK is not run."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
262 (cond ((> arg 0)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
263 (if (= (point) (point-max))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
264 (error "No further `%s' regions" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
265 (let ((pos (point)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
266 (dotimes (x arg)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
267 (setq pos (next-single-char-property-change pos prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
268 (unless (get-char-property pos prop)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
269 (setq pos (next-single-char-property-change pos prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
270 (unless (get-char-property pos prop)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
271 (cond ((= x 0)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
272 (error "No further `%s' regions" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
273 ((= x 1)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
274 (error "There is only one further `%s' region" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
275 (t
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
276 (error
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
277 "There are only %d further `%s' regions"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
278 x prop))))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
279 (goto-char pos)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
280 (run-hooks hook)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
281 ((= arg 0)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
282 (let ((val (get-char-property (point) prop)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
283 (cond ((not val)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
284 (message "Point is not in a `%s' region" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
285 ((eq val (get-char-property (1- (point)) prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
286 (goto-char
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
287 (previous-single-char-property-change (point) prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
288 (run-hooks hook))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
289 (t (run-hooks hook)))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
290 ((< arg 0)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
291 (let ((pos (point)) (val (get-char-property (point) prop)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
292 (and val
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
293 (eq val (get-char-property (1- pos) prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
294 (setq pos
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
295 (previous-single-char-property-change pos prop)))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
296 (if (= pos (point-min))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
297 (error "No prior `%s' regions" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
298 (dotimes (x (- arg))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
299 (setq pos (previous-single-char-property-change pos prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
300 (unless (get-char-property pos prop)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
301 (setq pos (previous-single-char-property-change pos prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
302 (unless (get-char-property pos prop)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
303 (cond ((= x 0)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
304 (error "No prior `%s' regions" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
305 ((= x 1)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
306 (error "There is only one prior `%s' region" prop))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
307 (t
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
308 (error "There are only %d prior `%s' regions"
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
309 x prop))))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
310 (goto-char pos)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
311 (run-hooks hook)))))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
312
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
313 ;; To be moved to a different file and replaced by a defcustom in a
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
314 ;; future version.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
315 (defvar scan-buf-move-hook '(display-local-help)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
316 "Normal hook run by `scan-buf-next-region'.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
317 Also used by `scan-buf-previous-region'. The hook is run after
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
318 positioning point.")
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
319
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
320 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
321 (defun scan-buf-next-region (&optional arg)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
322 "Go to the start of the next region with non-nil help-echo.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
323 Print the help found there using `display-local-help'. Adjacent
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
324 areas with different non-nil help-echo properties are considered
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
325 different regions.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
326
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
327 With numeric argument ARG, move to the start of the ARGth next
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
328 help-echo region. If ARG is negative, move backward. If point
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
329 is already in a help-echo region, then that region does not count
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
330 toward ARG. If ARG is 0 and point is inside a help-echo region,
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
331 move to the start of that region. If ARG is 0 and point is not
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
332 in such a region, just print a message to that effect. If there
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
333 are not enough regions to move over, an error results and the
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
334 number of available regions is mentioned in the error message.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
335
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
336 A potentially confusing subtlety is that point can be in a
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
337 help-echo region without any local help being available. This is
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
338 because `help-echo' can be a function evaluating to nil. This
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
339 rarely happens in practice."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
340 (interactive "p")
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
341 (scan-buf-move-to-region 'help-echo arg 'scan-buf-move-hook))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
342
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
343 ;;;###autoload
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
344 (defun scan-buf-previous-region (&optional arg)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
345 "Go to the start of the previous region with non-nil help-echo.
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
346 Print the help found there using `display-local-help'. Adjacent
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
347 areas with different non-nil help-echo properties are considered
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
348 different regions. With numeric argument ARG, behaves like
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
349 `scan-buf-next-region' with argument -ARG.."
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
350 (interactive "p")
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
351 (scan-buf-move-to-region 'help-echo (- arg) 'scan-buf-move-hook))
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
352
57542
06006ae6008a (help-at-pt-unload-hook): Use add-hook; no defvar.
Richard M. Stallman <rms@gnu.org>
parents: 54524
diff changeset
353 (add-hook 'help-at-pt-unload-hook 'help-at-pt-cancel-timer)
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
354
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
355 (provide 'help-at-pt)
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
356
53208
56caacf7856d Add arch taglines
Miles Bader <miles@gnu.org>
parents: 53203
diff changeset
357 ;;; arch-tag: d0b8b86d-d23f-45d0-a82d-208d6205a583
53203
14b91211c987 New file.
Luc Teirlinck <teirllm@auburn.edu>
parents:
diff changeset
358 ;;; help-at-pt.el ends here