changeset 63378:32d8df63f9df

(Parsing Expressions): Document aux functions and vars of syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 13 Jun 2005 14:21:21 +0000
parents 4e9862316d9a
children 70cb4d2371b4
files lispref/ChangeLog lispref/syntax.texi
diffstat 2 files changed, 25 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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  <monnier@iro.umontreal.ca>
+
+	* 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  <lute@gnu.org>
 
 	* text.texi (Special Properties): Fix cross reference.
--- 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.