]> code.delx.au - gnu-emacs/blobdiff - lispref/text.texi
(quail-help): The output message is improved.
[gnu-emacs] / lispref / text.texi
index 1a8b12bbf5c91d7c290a072b4bb3a4b361902a1b..dcafe0a6f18d15458d8c19e4ce2aad805f94eb19 100644 (file)
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000
 @c   Free Software Foundation, Inc. 
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/text
@@ -412,8 +412,8 @@ it except to install it on a keymap.
 In an interactive call, @var{count} is the numeric prefix argument.
 
 This command calls @code{auto-fill-function} whenever that is
-non-@code{nil} and the character inserted is a space or a newline
-(@pxref{Auto Filling}).
+non-@code{nil} and the character inserted is in the table
+@code{auto-fill-chars} (@pxref{Auto Filling}).
 
 @c Cross refs reworded to prevent overfull hbox.  --rjc 15mar92
 This command performs abbrev expansion if Abbrev mode is enabled and
@@ -496,12 +496,23 @@ be compared with that of the former text.
 @end deffn
 
 @deffn Command delete-region start end
-This command deletes the text in the current buffer in the region
-defined by @var{start} and @var{end}.  The value is @code{nil}.  If
-point was inside the deleted region, its value afterward is @var{start}.
+This command deletes the text between positions @var{start} and
+@var{end} in the current buffer, and returns @code{nil}.  If point was
+inside the deleted region, its value afterward is @var{start}.
 Otherwise, point relocates with the surrounding text, as markers do.
 @end deffn
 
+@defun delete-and-extract-region start end
+@tindex delete-and-extract-region
+This function deletes the text between positions @var{start} and
+@var{end} in the current buffer, and returns a string containing the
+text just deleted.
+
+If point was inside the deleted region, its value afterward is
+@var{start}.  Otherwise, point relocates with the surrounding text, as
+markers do.
+@end defun
+
 @deffn Command delete-char count &optional killp
 This command deletes @var{count} characters directly after point, or
 before point if @var{count} is negative.  If @var{killp} is
@@ -1487,8 +1498,9 @@ justification style to refill portions of the text.  @xref{Margins}.
 
 @defvar auto-fill-function
 The value of this variable should be a function (of no arguments) to be
-called after self-inserting a space or a newline.  It may be @code{nil},
-in which case nothing special is done in that case.
+called after self-inserting a character from the table
+@code{auto-fill-chars}.  It may be @code{nil}, in which case nothing
+special is done in that case.
 
 The value of @code{auto-fill-function} is @code{do-auto-fill} when
 Auto-Fill mode is enabled.  That is a function whose sole purpose is to
@@ -1508,6 +1520,12 @@ modes can set buffer-local values for this variable to alter how Auto
 Fill works.
 @end defvar
 
+@defvar auto-fill-chars
+A char table of characters which invoke @code{auto-fill-function} when
+self-inserted---space and newline in most language environments.  They
+have an entry @code{t} in the table.
+@end defvar
+
 @node Sorting
 @section Sorting Text
 @cindex sorting text
@@ -2636,10 +2654,41 @@ or shorter, higher or lower, wider or narrow, or replaced with an image.
 
 @item help-echo
 @kindex help-echo @r{(text property)}
+@anchor{Text help-echo}
 If text has a string as its @code{help-echo} property, then when you
 move the mouse onto that text, Emacs displays that string in the echo
-area, or in the tooltip window.  This feature is used in the mode line.
-It is available starting in Emacs 21.
+area, or in the tooltip window.
+
+If the value of the @code{help-echo} property is a function, that
+function is called with three arguments, @var{window}, @var{object} and
+@var{position} and should return a help string or @var{nil} for
+none.  The first argument, @var{window} is the window in which
+the help was found.  The second, @var{object}, is the buffer, overlay or
+string which had the @code{help-echo} property.  The @var{position}
+argument is as follows:
+
+@itemize @bullet{}
+@item
+If @var{object} is a buffer, @var{pos} is the position in the buffer
+where the @code{help-echo} text property was found.
+@item
+If @var{object} is an overlay, that overlay has a @code{help-echo}
+property, and @var{pos} is the position in the overlay's buffer under
+the mouse.
+@item
+If @var{object} is a string (an overlay string or a string displayed
+with the @code{display} property), @var{pos} is the position in that
+string under the mouse.
+@end itemize
+
+If the value of the @code{help-echo} property is neither a function nor
+a string, it is evaluated to obtain a help string.
+
+You can alter the way help text is displayed by setting the variable
+@code{show-help-function} (@pxref{Help display}).
+
+This feature is used in the mode line and for other active text.  It is
+available starting in Emacs 21.
 
 @item local-map
 @cindex keymap of character
@@ -2762,6 +2811,17 @@ property has no effect.  Do not set this variable globally; bind it with
 @code{let}.
 @end defvar
 
+@defvar show-help-function
+@tindex show-help-function
+@anchor{Help display} If this variable is non-@code{nil}, it specifies a
+function called to display help strings.  These may be @code{help-echo}
+properties, menu help strings (@pxref{Simple Menu Items},
+@pxref{Extended Menu Items}), or tool bar help strings (@pxref{Tool
+Bar}).  The specified function is called with one argument, the help
+string to display.  Tooltip mode (@pxref{(emacs)Tooltips}) provides an
+example.
+@end defvar
+
 @node Format Properties
 @subsection Formatted Text Properties
 
@@ -3043,17 +3103,17 @@ Dired uses the function @code{dired-get-filename} to determine which
 file to visit, based on the position found in the event.
 
   Instead of defining a mouse command for the major mode, you can define
-a key binding for the clickable text itself, using the @code{local-map}
+a key binding for the clickable text itself, using the @code{keymap}
 text property:
 
 @example
 (let ((map (make-sparse-keymap)))
-  (define-key-binding map [mouse-2] 'operate-this-button)
+  (define-key map [mouse-2] 'operate-this-button)
   (put-text-property (point)
                      (save-excursion
                        (dired-move-to-end-of-filename)
                        (point))
-                     'local-map map))
+                     'keymap map))
 @end example
 
 @noindent
@@ -3542,7 +3602,7 @@ arguments specify a portion of the buffer including all of the changes
 made within the @code{combine-after-change-calls} body.
 
 @strong{Warning:} You must not alter the values of
-@code{after-change-functions} and @code{after-change-function} within
+@code{after-change-functions} within
 the body of a @code{combine-after-change-calls} form.
 
 @strong{Note:} If the changes you combine occur in widely scattered
@@ -3551,19 +3611,7 @@ because it may lead to inefficient behavior for some change hook
 functions.
 @end defmac
 
-@defvar before-change-function
-This obsolete variable holds one function to call before any buffer
-modification (or @code{nil} for no function).  It is called just like
-the functions in @code{before-change-functions}.
-@end defvar
-
-@defvar after-change-function
-This obsolete variable holds one function to call after any buffer modification
-(or @code{nil} for no function).  It is called just like the functions in
-@code{after-change-functions}.
-@end defvar
-
-The four variables above are temporarily bound to @code{nil} during the
+The two variables above are temporarily bound to @code{nil} during the
 time that any of these functions is running.  This means that if one of
 these functions changes the buffer, that change won't run these
 functions.  If you do want a hook function to make changes that run