Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
6bddffd0
Commit
6bddffd0
authored
Dec 18, 2006
by
Stefan Monnier
Browse files
(syntax-ppss-flush-cache, syntax-ppss): Use syntax-ppss-toplevel-pos.
parent
be357779
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
24 additions
and
22 deletions
+24
-22
lisp/ChangeLog
lisp/ChangeLog
+8
-3
lisp/emacs-lisp/syntax.el
lisp/emacs-lisp/syntax.el
+16
-19
No files found.
lisp/ChangeLog
View file @
6bddffd0
2006-12-18 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/syntax.el (syntax-ppss-flush-cache, syntax-ppss):
Use syntax-ppss-toplevel-pos.
2006-12-18 Carsten Dominik <dominik@science.uva.nl>
* textmodes/org.el (org-current-line): Make sure that lines are
...
...
@@ -18,7 +23,7 @@
speed) the case when open-paren-in-column-0-is-defun-start is nil.
Based on code by Martin Rudalics.
* progmodes/cc-mode.el (c-basic-common-init):
d
on't set
* progmodes/cc-mode.el (c-basic-common-init):
D
on't set
open-paren-in-column-0-is-defun-start to nil any more.
2006-12-17 Richard Stallman <rms@gnu.org>
...
...
@@ -41,8 +46,8 @@
* calendar/icalendar.el (icalendar-version): Increase to "0.14".
(icalendar--rris): First try Emacs, then XEmacs.
(icalendar--convert-ical-to-diary): Doc fix.
Insert
newline at end of target file.
(icalendar--convert-ical-to-diary): Doc fix.
Insert
newline at end of target file.
2006-12-17 Kim F. Storm <storm@cua.dk>
lisp/emacs-lisp/syntax.el
View file @
6bddffd0
...
...
@@ -59,8 +59,14 @@ An \"outermost position\" means one that it is outside of any syntactic entity:
outside of any parentheses, comments, or strings encountered in the scan.
If no such position is recorded in PPSS (because the end of the scan was
itself at the outermost level), return nil."
;; BEWARE! We rely on the undocumented 9th field. The 9th field currently
;; contains the list of positions of the enclosing open-parens.
;; I.e. those positions are outside of any string/comment and the first of
;; those is outside of any paren (i.e. corresponds to a nil ppss).
;; If this list is empty but we are in a string or comment, then the 8th
;; field contains a similar "toplevel" position.
(
or
(
car
(
nth
9
ppss
))
(
nth
8
ppss
)))
(
nth
8
ppss
)))
(
defsubst
syntax-ppss-context
(
ppss
)
(
cond
...
...
@@ -97,8 +103,7 @@ point (where the PPSS is equivalent to nil).")
;; depend on the text after BEG (which is presumably changed). So if
;; BEG=(car (nth 10 syntax-ppss-last)) don't reuse that data because the
;; assumed nil state at BEG may not be valid any more.
(
if
(
<=
beg
(
or
(
car
(
nth
10
syntax-ppss-last
))
(
nth
9
syntax-ppss-last
)
(
if
(
<=
beg
(
or
(
syntax-ppss-toplevel-pos
(
cdr
syntax-ppss-last
))
(
nth
3
syntax-ppss-last
)
0
))
(
setq
syntax-ppss-last
nil
)
...
...
@@ -146,22 +151,14 @@ Point is at POS when this function returns."
(
cond
;; Use OLD-PPSS if possible and close enough.
((
and
(
not
old-pos
)
old-ppss
;; BEWARE! We rely on the undocumented 9th field. The 9th
;; field currently contains the list of positions of
;; open-parens of the enclosing parens. I.e. those
;; positions are outside of any string/comment
;; and the first of those is outside of any paren
;; (i.e. corresponds to a nil ppss). If this list is empty
;; but we are in a string or comment, then the 8th field
;; contains a similar "toplevel" position. If `pt-min' is
;; too far from `pos', we could try to use other positions
;; in (nth 9 old-ppss), but that doesn't seem to happen in
;; practice and it would complicate this code (and the
;; before-change-function code even more). But maybe it
;; would be useful in "degenerate" cases such as when the
;; whole file is wrapped in a set of parenthesis.
(
setq
pt-min
(
or
(
car
(
nth
9
old-ppss
))
(
nth
8
old-ppss
)
;; If `pt-min' is too far from `pos', we could try to use
;; other positions in (nth 9 old-ppss), but that doesn't
;; seem to happen in practice and it would complicate this
;; code (and the before-change-function code even more).
;; But maybe it would be useful in "degenerate" cases such
;; as when the whole file is wrapped in a set
;; of parentheses.
(
setq
pt-min
(
or
(
syntax-ppss-toplevel-pos
old-ppss
)
(
nth
2
old-ppss
)))
(
<=
pt-min
pos
)
(
<
(
-
pos
pt-min
)
syntax-ppss-max-span
))
(
incf
(
car
(
aref
syntax-ppss-stats
1
)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment