summaryrefslogtreecommitdiff
path: root/doc/lispref
diff options
context:
space:
mode:
Diffstat (limited to 'doc/lispref')
-rw-r--r--doc/lispref/keymaps.texi17
-rw-r--r--doc/lispref/positions.texi17
-rw-r--r--doc/lispref/text.texi57
-rw-r--r--doc/lispref/windows.texi21
4 files changed, 80 insertions, 32 deletions
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index 35d9d0c9654..29f2c422cb2 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -194,10 +194,19 @@ explicitly bound to @code{nil} (see below).
@item @var{char-table}
If an element of a keymap is a char-table, it counts as holding
bindings for all character events with no modifier bits
-(@pxref{modifier bits}): element @var{n} is the binding for the
-character with code @var{n}. This is a compact way to record lots of
-bindings. A keymap with such a char-table is called a @dfn{full
-keymap}. Other keymaps are called @dfn{sparse keymaps}.
+(@pxref{modifier bits}): the element whose index is @var{c} is the
+binding for the character @var{c}. This is a compact way to record
+lots of bindings. A keymap with such a char-table is called a
+@dfn{full keymap}. Other keymaps are called @dfn{sparse keymaps}.
+
+@item @var{vector}
+This kind of element is similar to a char-table: the element whose
+index is @var{c} is the binding for the character @var{c}. Since the
+range of characters that can be bound this way is limited by the
+vector size, and vector creation allocates space for all character
+codes from 0 up, this format should not be used except for creating
+menu keymaps (@pxref{Menu Keymaps}), where the bindings themselves
+don't matter.
@item @var{string}
@cindex keymap prompt string
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index 796a06615ae..a56ab5ef307 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -192,8 +192,9 @@ in the opposite direction.
@subsection Motion by Words
The functions for parsing words described below use the syntax table
-to decide whether a given character is part of a word. @xref{Syntax
-Tables}.
+and @code{char-script-table} to decide whether a given character is
+part of a word. @xref{Syntax Tables}, and see @ref{Character
+Properties}.
@deffn Command forward-word &optional count
This function moves point forward @var{count} words (or backward if
@@ -207,11 +208,13 @@ and then continue moving until the word ends. By default, characters
that begin and end words, known as @dfn{word boundaries}, are defined
by the current buffer's syntax table (@pxref{Syntax Class Table}), but
modes can override that by setting up a suitable
-@code{find-word-boundary-function-table}, described below. In any
-case, this function cannot move point past the boundary of the
-accessible portion of the buffer, or across a field boundary
-(@pxref{Fields}). The most common case of a field boundary is the end
-of the prompt in the minibuffer.
+@code{find-word-boundary-function-table}, described below. Characters
+that belong to different scripts (as defined by
+@code{char-syntax-table}), also define a word boundary
+(@pxref{Character Properties}). In any case, this function cannot
+move point past the boundary of the accessible portion of the buffer,
+or across a field boundary (@pxref{Fields}). The most common case of
+a field boundary is the end of the prompt in the minibuffer.
If it is possible to move @var{count} words, without being stopped
prematurely by the buffer boundary or a field boundary, the value is
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 4dc943f868b..213eec9d3c8 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -3439,12 +3439,14 @@ the beginning of the @code{display} property or at
@cindex cursor position for @code{display} properties and overlays
When the buffer has many overlay strings (e.g., @pxref{Overlay
-Properties, before-string}) or @code{display} properties that are
-strings, it is a good idea to use the @code{cursor} property on these
-strings to cue the Emacs display about the places where to put the
-cursor while traversing these strings. This directly communicates to
-the display engine where the Lisp program wants to put the cursor, or
-where the user would expect the cursor.
+Properties, before-string}) that conceal some of the buffer text or
+@code{display} properties that are strings, it is a good idea to use
+the @code{cursor} property on these strings to cue the Emacs display
+about the places where to put the cursor while traversing these
+strings. This directly communicates to the display engine where the
+Lisp program wants to put the cursor, or where the user would expect
+the cursor, when point is located on some buffer position that is
+``covered'' by the display or overlay string.
@item pointer
@kindex pointer @r{(text property)}
@@ -4770,10 +4772,10 @@ group you start for any given buffer should be the last one finished.
@cindex change hooks
@cindex hooks for text changes
- These hook variables let you arrange to take notice of all changes in
-all buffers (or in a particular buffer, if you make them buffer-local).
-See also @ref{Special Properties}, for how to detect changes to specific
-parts of the text.
+ These hook variables let you arrange to take notice of changes in
+buffers (or in a particular buffer, if you make them buffer-local).
+See also @ref{Special Properties}, for how to detect changes to
+specific parts of the text.
The functions you use in these hooks should save and restore the match
data if they do anything that uses regular expressions; otherwise, they
@@ -4781,18 +4783,20 @@ will interfere in bizarre ways with the editing operations that call
them.
@defvar before-change-functions
-This variable holds a list of functions to call before any buffer
-modification. Each function gets two arguments, the beginning and end
-of the region that is about to change, represented as integers. The
-buffer that is about to change is always the current buffer.
+This variable holds a list of functions to call when Emacs is about to
+modify a buffer. Each function gets two arguments, the beginning and
+end of the region that is about to change, represented as integers.
+The buffer that is about to change is always the current buffer when
+the function is called.
@end defvar
@defvar after-change-functions
-This variable holds a list of functions to call after any buffer
-modification. Each function receives three arguments: the beginning
-and end of the region just changed, and the length of the text that
-existed before the change. All three arguments are integers. The
-buffer that has been changed is always the current buffer.
+This variable holds a list of functions to call after Emacs modifies a
+buffer. Each function receives three arguments: the beginning and end
+of the region just changed, and the length of the text that existed
+before the change. All three arguments are integers. The buffer that
+has been changed is always the current buffer when the function is
+called.
The length of the old text is the difference between the buffer
positions before and after that text as it was before the change. As
@@ -4800,8 +4804,19 @@ for the changed text, its length is simply the difference between the
first two arguments.
@end defvar
- Output of messages into the @file{*Messages*} buffer does not
-call these functions.
+ Output of messages into the @file{*Messages*} buffer does not call
+these functions, and neither do certain internal buffer changes, such
+as changes in buffers created by Emacs internally for certain jobs,
+that should not be visible to Lisp programs.
+
+ Do @emph{not} expect the before-change hooks and the after-change
+hooks be called in balanced pairs around each buffer change. Also
+don't expect the before-change hooks to be called for every chunk of
+text Emacs is about to delete. These hooks are provided on the
+assumption that Lisp programs will use either before- or the
+after-change hooks, but not both, and the boundaries of the region
+where the changes happen might include more than just the actual
+changed text, or even lump together several changes done piecemeal.
@defmac combine-after-change-calls body@dots{}
The macro executes @var{body} normally, but arranges to call the
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 7a5d1bbf166..b2b57642434 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -4386,6 +4386,27 @@ window when it deletes the window passed to it as argument.
The fourth element is the buffer whose display caused the creation of
this parameter. @code{quit-restore-window} deletes the specified window
only if it still shows that buffer.
+
+@item @code{min-margins}
+The value of this parameter is a cons cell whose @sc{car} and @sc{cdr},
+if non-@code{nil}, specify the minimum values (in columns) for the left
+and right margin of this window. When present, Emacs will use these
+values instead of the actual margin widths for determining whether a
+window can be split or shrunk horizontally.
+
+Emacs never auto-adjusts the margins of any window after splitting or
+resizing it. It is sole responsibility of the application that has set
+this parameter to adjust the margins of this window as well as those of
+any new window that inherits this window's margins due to a split.
+Both, @code{window-configuration-change-hook} and
+@code{window-size-change-functions} (@pxref{Window Hooks}), should be
+employed for this purpose.
+
+This parameter was introduced in Emacs version 25.1 to support
+applications that use large margins to center buffer text within a
+window and should be used, with due care, exclusively by those
+applications. It might be replaced by an improved solution in future
+versions of Emacs.
@end table
There are additional parameters @code{window-atom} and @code{window-side};