From: martin rudalics <rudalics@gmx.at>
Cc: Alan Mackenzie <acm@muc.de>,
emacs-devel@gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>,
Richard Stallman <rms@gnu.org>
Subject: Re: Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw.
Date: Sun, 17 Dec 2006 11:32:20 +0100 [thread overview]
Message-ID: <45851CB4.8080103@gmx.at> (raw)
In-Reply-To: <87slff6ugr.fsf@furball.mit.edu>
>>I want to remove that code and go back to what it was before, unless I can
>>find a *good* explanation for why it needs to be in beginning-of-defun-raw.
>
>
> I think one of the reasons it was put in there was because it doesn't
> look like it belongs in cc-*.el either. Since the code should
> probably not be deleted outright (it seems to work OK for small files,
> so individual users might want to turn it on), what about putting in a
> function, call it "syntax-ppss-beginning-of-defun", in syntax.el?
If we really wanted to do something about this we'd have to fix the
find_defun_start problem for `open-paren-in-column-0-is-defun-start'
equalling nil. Everything else will be a non-issue after that. M-v has
become unbearably slow in C mode.
Finding a good approximation for the find_defun_start problem is not
entirely trivial. We'd have to define a `syntax-from-scratch' function
which repeatedly calls
(1) `parse-partial-sexp' on well (probably binomially) distributed
buffer positions, thereafter
(2) executes a second call from that position with a targetdepth zero
argument, before it finally
(3) executes a third call from the last position with a non-nil
stopbefore argument.
Essentially, we'd need something like
............. 1 .. 3 .........1 .. 3 ..... 1 .... 3 .. 1 . 3 .. 1 .. 3
where the "1"s correspond to the buffer positions where we asked
`parse-partial-sexp' to stop in the (1) steps, and the "3"s correspond
to the first `beginning-of-defun' found after that in a (3) step. Next
we would have to cache the "3" positions and invalidate, in an
after-change-function, all positions following a buffer change. And we
should reconcile this with syntax-ppss's cache to avoid duplicate work
(after all the "1" positions are similar to what syntax-ppss uses now).
next prev parent reply other threads:[~2006-12-17 10:32 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87y7po2e9b.fsf@leeloo.anubex.internal>
[not found] ` <45741FBE.3000107@swipnet.se>
[not found] ` <45742464.1090504@gmx.at>
2006-12-04 21:17 ` Mysterious fontification/C++ context issue Alan Mackenzie
2006-12-06 0:47 ` Richard Stallman
2006-12-06 9:04 ` martin rudalics
2006-12-06 12:22 ` Kim F. Storm
2006-12-06 16:31 ` Chong Yidong
2006-12-07 4:59 ` Richard Stallman
2006-12-09 17:46 ` Chong Yidong
2006-12-09 20:09 ` Stefan Monnier
2006-12-11 1:05 ` Richard Stallman
2006-12-11 2:27 ` Stefan Monnier
2006-12-11 4:38 ` Stefan Monnier
2006-12-12 16:24 ` Chong Yidong
2006-12-12 17:10 ` Stefan Monnier
2006-12-10 4:24 ` Richard Stallman
2006-12-10 0:35 ` Alan Mackenzie
2006-12-10 1:11 ` Chong Yidong
2006-12-10 9:12 ` Alan Mackenzie
2006-12-10 12:46 ` David Kastrup
2006-12-10 14:50 ` Alan Mackenzie
2006-12-10 15:13 ` David Kastrup
2006-12-10 20:30 ` Chong Yidong
2006-12-13 21:29 ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Alan Mackenzie
2006-12-14 1:02 ` Chong Yidong
2006-12-14 7:36 ` Alan Mackenzie
2006-12-14 10:47 ` martin rudalics
2006-12-14 18:26 ` Alan Mackenzie
2006-12-14 18:53 ` David Kastrup
2006-12-14 20:21 ` Chong Yidong
2006-12-14 20:35 ` Chong Yidong
2006-12-14 22:18 ` Alan Mackenzie
2006-12-14 22:51 ` Chong Yidong
2006-12-15 0:53 ` David Kastrup
2006-12-15 10:35 ` Johan Bockgård
2006-12-14 21:53 ` What `opic0ids' really is [was: Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw.] Stuart D. Herring
2006-12-15 7:32 ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw martin rudalics
2006-12-15 19:22 ` Alan Mackenzie
2006-12-15 22:20 ` David Kastrup
2006-12-16 10:17 ` martin rudalics
2006-12-17 11:44 ` Alan Mackenzie
2006-12-17 12:02 ` David Kastrup
2006-12-17 12:08 ` Alan Mackenzie
2006-12-17 12:14 ` David Kastrup
2006-12-17 12:26 ` Alan Mackenzie
2006-12-17 12:51 ` David Kastrup
2006-12-17 17:28 ` martin rudalics
2006-12-17 18:36 ` Mysterious fontification/C++ context issue - Patch for c-basic-common-init Alan Mackenzie
2006-12-17 18:45 ` Chong Yidong
2006-12-17 22:18 ` Alan Mackenzie
2006-12-17 22:59 ` Chong Yidong
2006-12-18 0:06 ` Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Stefan Monnier
2006-12-15 23:24 ` Stefan Monnier
2006-12-16 10:17 ` martin rudalics
2006-12-16 18:14 ` Chong Yidong
2006-12-16 18:27 ` martin rudalics
2006-12-16 19:00 ` martin rudalics
2006-12-16 19:33 ` Chong Yidong
2006-12-16 19:59 ` martin rudalics
2006-12-16 20:10 ` Chong Yidong
2006-12-16 21:26 ` Chong Yidong
2006-12-16 22:43 ` martin rudalics
2006-12-16 23:30 ` Stefan Monnier
2006-12-16 23:40 ` martin rudalics
2006-12-17 0:04 ` Stefan Monnier
2006-12-17 4:02 ` Chong Yidong
2006-12-17 10:32 ` martin rudalics [this message]
2006-12-17 10:26 ` martin rudalics
2006-12-17 10:59 ` David Kastrup
2006-12-17 23:23 ` Stefan Monnier
2006-12-17 11:10 ` Alan Mackenzie
2006-12-17 12:01 ` David Kastrup
2006-12-18 0:04 ` Stefan Monnier
2006-12-16 22:11 ` martin rudalics
2006-12-16 23:29 ` Stefan Monnier
2006-12-16 23:37 ` martin rudalics
2006-12-16 20:22 ` David Kastrup
2006-12-16 22:21 ` martin rudalics
2006-12-14 17:29 ` Chong Yidong
2006-12-14 18:56 ` David Kastrup
2006-12-14 22:57 ` Alan Mackenzie
2006-12-15 22:56 ` Stefan Monnier
2006-12-15 23:03 ` David Kastrup
2006-12-14 10:45 ` martin rudalics
2006-12-14 18:29 ` Alan Mackenzie
2006-12-15 22:49 ` Stefan Monnier
2006-12-10 21:39 ` Mysterious fontification/C++ context issue Stefan Monnier
2006-12-10 23:14 ` Kim F. Storm
2006-12-14 7:43 ` Alan Mackenzie
2006-12-14 7:51 ` Miles Bader
2006-12-15 23:36 ` Stefan Monnier
2006-12-10 9:18 ` martin rudalics
2006-12-11 1:23 ` Stefan Monnier
2006-12-11 7:23 ` martin rudalics
2006-12-11 7:36 ` Stefan Monnier
2006-12-11 8:32 ` martin rudalics
2006-12-11 16:30 ` Stefan Monnier
2006-12-11 1:05 ` Stefan Monnier
2006-12-11 1:06 ` Richard Stallman
2006-12-06 18:44 ` Richard Stallman
2006-12-06 22:38 ` martin rudalics
2006-12-08 5:05 ` Richard Stallman
2006-12-09 9:42 ` martin rudalics
2006-12-10 4:24 ` Richard Stallman
2006-12-10 8:38 ` martin rudalics
2006-12-10 10:56 ` Alan Mackenzie
2006-12-10 11:58 ` martin rudalics
2006-12-10 14:30 ` Slawomir Nowaczyk
2006-12-11 1:29 ` Stefan Monnier
2006-12-06 20:52 ` Alan Mackenzie
2006-12-06 22:38 ` martin rudalics
2006-12-07 5:07 ` Stefan Monnier
2006-12-15 5:03 Mysterious fontification/C++ context issue - Patch for beginning-of-defun-raw Richard Stallman
2006-12-15 6:31 ` Sean O'Rourke
2006-12-15 16:08 ` Chong Yidong
2006-12-15 16:16 ` Sean O'Rourke
2006-12-15 16:44 ` Chong Yidong
2006-12-15 20:46 ` Stuart D. Herring
2006-12-15 21:24 ` Richard Stallman
2006-12-15 22:31 ` Sean O'Rourke
2006-12-15 16:57 ` Chong Yidong
2006-12-15 23:33 ` Stefan Monnier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45851CB4.8080103@gmx.at \
--to=rudalics@gmx.at \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.