[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Reliable after-change-functions (via: Using incremental parsing in E
From: |
Stefan Monnier |
Subject: |
Re: Reliable after-change-functions (via: Using incremental parsing in Emacs) |
Date: |
Thu, 02 Apr 2020 15:39:05 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) |
> Some modes doesn’t require a font-up parsing. IIRC, an example from an
> earlier message is javascript-mode.
Yet, in order to decide whether position P in a javascript buffer is
inside a comment or not, you will either have to look at everything
between point-min and P, or think hard about all the various
possibilities to try and see if you can argue that in this particular
case it's not necessary.
E.g. if you see
foo /* bar */
then you might be able to say that "bar" is within a comment without
looking much further. But for "foo" you first have to look back because
there might have been an earlier unmatched `/*`.
BTW, for "bar" you still have to look a bit further: it might be that
the previous line was:
tmp = "hello\
in which case "bar" is not inside a comment but inside a string.
Well, unless there's ... an earlier unmatched `/*`.
Etc...
For the case of Javascript I believe that you can come up with an
algorithm which will reliably give the right answer while almost never
having to go back all the way to `point-min`. I even believe it's
possible to write a tool that will automatically find that algorithm
given a suitable input grammar. But for some languages like Elisp,
Python, and OCaml I believe it's simply impossible (for Elisp/Python
it's because of the existence of multiline strings (with no "trailing \"
to indicate their possible presence) and for OCaml it's because of the
nested comments).
Stefan
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), (continued)
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Alan Mackenzie, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Dmitry Gutov, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Jorge Javier Araya Navarro, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Dmitry Gutov, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/02
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), 조성빈, 2020/04/02
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Yuan Fu, 2020/04/02
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs),
Stefan Monnier <=
Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Dmitry Gutov, 2020/04/01
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Alan Mackenzie, 2020/04/04
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/04
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Andrea Corallo, 2020/04/04
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/04
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Andrea Corallo, 2020/04/04
- Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Richard Copley, 2020/04/04
Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Eli Zaretskii, 2020/04/04
Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Dmitry Gutov, 2020/04/04
Re: Reliable after-change-functions (via: Using incremental parsing in Emacs), Alan Mackenzie, 2020/04/04