Commit c4adeee0 authored by Chong Yidong's avatar Chong Yidong
Browse files

* display.texi (Refresh Screen): Note that a passage about screen

refreshing is text terminal only.
(Forcing Redisplay): Delete misleading comment---sit-for calls
redisplay, not the other way around.
(Truncation): Note new values of truncate-partial-width-windows.
Copyedits.
(Invisible Text): Document invisible-p.
parent df93e513
2009-04-13 Chong Yidong <cyd@stupidchicken.com>
* display.texi (Refresh Screen): Note that a passage about screen
refreshing is text terminal only.
(Forcing Redisplay): Delete misleading comment---sit-for calls
redisplay, not the other way around.
(Truncation): Note new values of truncate-partial-width-windows.
Copyedits.
(Invisible Text): Document invisible-p.
2009-04-11 Eli Zaretskii <eliz@gnu.org> 2009-04-11 Eli Zaretskii <eliz@gnu.org>
* display.texi (Overlays): Overlays don't scale well. See * display.texi (Overlays): Overlays don't scale well. See
......
...@@ -60,11 +60,11 @@ you call these functions when input is available, they don't redisplay ...@@ -60,11 +60,11 @@ you call these functions when input is available, they don't redisplay
immediately, but the requested redisplay does happen immediately, but the requested redisplay does happen
eventually---after all the input has been processed. eventually---after all the input has been processed.
Normally, suspending and resuming Emacs also refreshes the screen. On text-only terminals, suspending and resuming Emacs normally also
Some terminal emulators record separate contents for display-oriented refreshes the screen. Some terminal emulators record separate
programs such as Emacs and for ordinary sequential display. If you are contents for display-oriented programs such as Emacs and for ordinary
using such a terminal, you might want to inhibit the redisplay on sequential display. If you are using such a terminal, you might want
resumption. to inhibit the redisplay on resumption.
@defvar no-redraw-on-reenter @defvar no-redraw-on-reenter
@cindex suspend (cf. @code{no-redraw-on-reenter}) @cindex suspend (cf. @code{no-redraw-on-reenter})
...@@ -79,13 +79,13 @@ to redraw, @code{nil} means redrawing is needed. The default is @code{nil}. ...@@ -79,13 +79,13 @@ to redraw, @code{nil} means redrawing is needed. The default is @code{nil}.
@cindex forcing redisplay @cindex forcing redisplay
Emacs normally tries to redisplay the screen whenever it waits for Emacs normally tries to redisplay the screen whenever it waits for
input. With this function you can request an immediate attempt to input. With the following function, you can request an immediate
redisplay, in the middle of Lisp code, without actually waiting for attempt to redisplay, in the middle of Lisp code, without actually
input. waiting for input.
@defun redisplay &optional force @defun redisplay &optional force
This function tries immediately to redisplay, provided there are no This function tries immediately to redisplay, provided there are no
pending input events. It is equivalent to @code{(sit-for 0)}. pending input events.
If the optional argument @var{force} is non-@code{nil}, it does all If the optional argument @var{force} is non-@code{nil}, it does all
pending redisplay work even if input is available, with no pending redisplay work even if input is available, with no
...@@ -166,14 +166,12 @@ truncation; a @samp{\} on the rightmost column indicates a line that ...@@ -166,14 +166,12 @@ truncation; a @samp{\} on the rightmost column indicates a line that
for this; @pxref{Display Tables}). for this; @pxref{Display Tables}).
@defopt truncate-lines @defopt truncate-lines
This buffer-local variable controls how Emacs displays lines that extend If this buffer-local variable is non-@code{nil}, lines that extend
beyond the right edge of the window. The default is @code{nil}, which beyond the right edge of the window are truncated; otherwise, they are
specifies continuation. If the value is non-@code{nil}, then these continued. As a special exception, the variable
lines are truncated. @code{truncate-partial-width-windows} takes precedence in
@dfn{partial-width} windows (i.e., windows that do not occupy the
If the variable @code{truncate-partial-width-windows} is non-@code{nil}, entire frame width).
then truncation is always used for side-by-side windows (within one
frame) regardless of the value of @code{truncate-lines}.
@end defopt @end defopt
@defopt default-truncate-lines @defopt default-truncate-lines
...@@ -182,42 +180,50 @@ buffers that do not have buffer-local values for it. ...@@ -182,42 +180,50 @@ buffers that do not have buffer-local values for it.
@end defopt @end defopt
@defopt truncate-partial-width-windows @defopt truncate-partial-width-windows
This variable controls display of lines that extend beyond the right This variable controls line truncation in @dfn{partial-width} windows.
edge of the window, in side-by-side windows (@pxref{Splitting Windows}). A partial-width window is one that does not occupy the entire frame
If it is non-@code{nil}, these lines are truncated; otherwise, width (@pxref{Splitting Windows}). If the value is @code{nil}, line
@code{truncate-lines} says what to do with them. truncation is determined by the variable @code{truncate-lines} (see
above). If the value is an integer @var{n}, lines are truncated if
the partial-width window has fewer than @var{n} columns, regardless of
the value of @code{truncate-lines}; if the partial-width window has
@var{n} or more columns, line truncation is determined by
@code{truncate-lines}. For any other non-@code{nil} value, lines are
truncated in every partial-width window, regardless of the value of
@code{truncate-lines}.
@end defopt @end defopt
When horizontal scrolling (@pxref{Horizontal Scrolling}) is in use in When horizontal scrolling (@pxref{Horizontal Scrolling}) is in use in
a window, that forces truncation. a window, that forces truncation.
@defvar wrap-prefix @defvar wrap-prefix
If this buffer-local variable is non-@code{nil}, the prefix it defines If this buffer-local variable is non-@code{nil}, it defines a
will be added at display-time to the beginning of every continuation ``prefix'' that is added at display-time to the beginning of every
line due to text wrapping (so if lines are truncated, the wrap-prefix continuation line. (If lines are truncated, the wrap-prefix is never
is never used). It may be a string, an image, or a stretch-glyph such used.) It may be a string, an image, or a stretch-glyph, as used by
as used by the `display' text-property. @xref{Display Property}. the @code{display} text property. @xref{Display Property}.
A wrap-prefix may also be specified for regions of text using the A wrap-prefix may also be specified for regions of text, using the
@code{wrap-prefix} text-property (which takes precedence over the @code{wrap-prefix} text property. This takes precedence over the
value of the @code{wrap-prefix} variable). @xref{Special Properties}. value of the @code{wrap-prefix} variable. @xref{Special Properties}.
@end defvar @end defvar
@defvar line-prefix @defvar line-prefix
If this buffer-local variable is non-@code{nil}, the prefix it defines If this buffer-local variable is non-@code{nil}, it defines a
will be added at display-time to the beginning of every ``prefix'' that is added at display-time to the beginning of every
non-continuation line It may be a string, an image, or a stretch-glyph non-continuation line. It may be a string, an image, or a
such as used by the `display' text-property. @xref{Display Property}. stretch-glyph, as used by the @code{display} text property.
@xref{Display Property}.
A line-prefix may also be specified for regions of text using the A line-prefix may also be specified for regions of text using the
@code{line-prefix} text-property (which takes precedence over the @code{line-prefix} text property. This takes precedence over the
value of the @code{line-prefix} variable). @xref{Special Properties}. value of the @code{line-prefix} variable. @xref{Special Properties}.
@end defvar @end defvar
If your buffer contains @emph{very} long lines, and you use If your buffer contains @emph{very} long lines, and you use
continuation to display them, just thinking about them can make Emacs continuation to display them, computing the continuation lines can
redisplay slow. The column computation and indentation functions also make Emacs redisplay slow. The column computation and indentation
become slow. Then you might find it advisable to set functions also become slow. Then you might find it advisable to set
@code{cache-long-line-scans} to @code{t}. @code{cache-long-line-scans} to @code{t}.
@defvar cache-long-line-scans @defvar cache-long-line-scans
...@@ -846,12 +852,25 @@ major mode should use the mode's own name as an element of ...@@ -846,12 +852,25 @@ major mode should use the mode's own name as an element of
(remove-from-invisibility-spec 'my-symbol) (remove-from-invisibility-spec 'my-symbol)
@end example @end example
You can check for invisibility using the following function:
@defun invisible-p pos-or-prop
If @var{pos-or-prop} is a marker or number, this function returns a
non-@code{nil} value if the text at that position is invisible.
If @var{pos-or-prop} is any other kind of Lisp object, that is taken
to mean a possible value of the @code{invisible} text or overlay
property. In that case, this function returns a non-@code{nil} value
if that value would cause text to become invisible, based on the
current value of @code{buffer-invisibility-spec}.
@end defun
@vindex line-move-ignore-invisible @vindex line-move-ignore-invisible
Ordinarily, functions that operate on text or move point do not care Ordinarily, functions that operate on text or move point do not care
whether the text is invisible. The user-level line motion commands whether the text is invisible. The user-level line motion commands
explicitly ignore invisible newlines if ignore invisible newlines if @code{line-move-ignore-invisible} is
@code{line-move-ignore-invisible} is non-@code{nil} (the default), but non-@code{nil} (the default), but only because they are explicitly
only because they are explicitly programmed to do so. programmed to do so.
However, if a command ends with point inside or immediately before However, if a command ends with point inside or immediately before
invisible text, the main editing loop moves point further forward or invisible text, the main editing loop moves point further forward or
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment