# HG changeset patch # User Stefan Monnier # Date 1118672481 0 # Node ID 32d8df63f9dff8e965c0dacea1b66172930d7852 # Parent 4e9862316d9a4f10189080ec67e42430c5f09a89 (Parsing Expressions): Document aux functions and vars of syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function. diff -r 4e9862316d9a -r 32d8df63f9df lispref/ChangeLog --- a/lispref/ChangeLog Mon Jun 13 12:19:38 2005 +0000 +++ b/lispref/ChangeLog Mon Jun 13 14:21:21 2005 +0000 @@ -1,3 +1,8 @@ +2005-06-13 Stefan Monnier + + * syntax.texi (Parsing Expressions): Document aux functions and vars of + syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function. + 2005-06-13 Lute Kamstra * text.texi (Special Properties): Fix cross reference. diff -r 4e9862316d9a -r 32d8df63f9df lispref/syntax.texi --- a/lispref/syntax.texi Mon Jun 13 12:19:38 2005 +0000 +++ b/lispref/syntax.texi Mon Jun 13 14:21:21 2005 +0000 @@ -740,6 +740,26 @@ parenthesis depth) of the returned state are not meaningful. @end defun +@defun syntax-ppss-flush-cache beg +This function flushes the cache used by @code{syntax-ppss}, starting at +position @var{beg}. + +When @code{syntax-ppss} is called, it automatically hooks itself +to @code{before-change-functions} to keep its cache consistent. +But this can fail if @code{syntax-ppss} is called while +@code{before-change-functions} is temporarily let-bound, or if the +buffer is modified without obeying the hook, such as when using +@code{inhibit-modification-hooks}. For this reason, it is sometimes +necessary to flush the cache manually. +@end defun + +@defvar syntax-begin-function +If this is non-nil, it should be a function that moves to an earlier +buffer position where the parser state is equivalent to @code{nil}, +i.e., a position outside of any comment, string, or parenthesis. +@code{syntax-ppss} uses it to supplement its cache. +@end defvar + @defun scan-lists from count depth This function scans forward @var{count} balanced parenthetical groupings from position @var{from}. It returns the position where the scan stops.