diff options
Diffstat (limited to 'doc/lispref')
-rw-r--r-- | doc/lispref/keymaps.texi | 17 | ||||
-rw-r--r-- | doc/lispref/positions.texi | 17 | ||||
-rw-r--r-- | doc/lispref/text.texi | 57 | ||||
-rw-r--r-- | doc/lispref/windows.texi | 21 |
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}; |