From: "Andreas Röhler" <andreas.roehler@easy-emacs.de>
To: Alan Mackenzie <acm@muc.de>
Cc: 23019@debbugs.gnu.org
Subject: bug#23019: parse-partial-sexp doesn't output the full state needed for its continuance.
Date: Tue, 15 Mar 2016 14:38:54 +0100 [thread overview]
Message-ID: <56E8106E.7020402@easy-emacs.de> (raw)
In-Reply-To: <20160315101521.GB2263@acm.fritz.box>
On 15.03.2016 11:15, Alan Mackenzie wrote:
> Hello, Andreas.
>
> On Tue, Mar 15, 2016 at 10:35:08AM +0100, Andreas Röhler wrote:
>
>
>> On 15.03.2016 10:13, Alan Mackenzie wrote:
>>> Hello, Emacs.
>>> When parse-partial-sexp finishes a parse, it fails to record whether or
>>> not its end point is just after the first character of a two character
>>> comment starter or ender. When the resulting state is used as an
>>> argument to resume the parse, p-p-s will be unaware that the comment has
>>> started or ended and produce false results.
>>> Proposed solution: Add an extra element to the parser state, recording the
>>> syntax of the last character passed over before the end of the parse.
>>> This would be used by parse-partial-sexp to initialise its parse.
>>> Also: the existing element 9 (the list of currently open parens) and the
>>> new element should be explicitly documented in the Elisp manual, together
>>> with a statement that there may be further elements in the parse state
>>> used internally by parse-partial-sexp (for future expansion).
>
>> a comment start might be composed not just by two characters, but by
>> three or more. What then?
> We'd have to start thinking about extending parse-partial-sexp, or
> invent some workaround. Maybe. There must be some languages (?html)
> where this is the case. What is done in these?
May you send me this (or more) example use-cases? Couldn't find the one
already given, sorry.
Addressed this issue in my generic beg-end.el
https://github.com/andreas-roehler/werkstatt/blob/master/subroutines/beg-end.el
In case beg-end forms used a start-string, look if the char-at-point
would match this string.
Then look if the char-before is before in string, etc.
next prev parent reply other threads:[~2016-03-15 13:38 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-15 9:13 bug#23019: parse-partial-sexp doesn't output the full state needed for its continuance Alan Mackenzie
2016-03-15 9:35 ` Andreas Röhler
2016-03-15 10:15 ` Alan Mackenzie
2016-03-15 13:38 ` Andreas Röhler [this message]
2016-03-17 12:58 ` Stefan Monnier
2016-03-17 21:49 ` Alan Mackenzie
2016-03-18 4:49 ` Stefan Monnier
2016-03-18 15:11 ` Alan Mackenzie
2016-03-18 15:22 ` Alan Mackenzie
2016-03-18 16:23 ` Stefan Monnier
2016-03-18 18:25 ` Alan Mackenzie
2016-03-18 19:36 ` Stefan Monnier
2016-03-19 17:06 ` Alan Mackenzie
2016-03-20 1:30 ` Stefan Monnier
2016-03-20 13:41 ` Alan Mackenzie
2016-04-03 22:53 ` John Wiegley
2016-04-04 12:15 ` Stefan Monnier
2016-04-05 12:54 ` Alan Mackenzie
2016-04-05 13:50 ` Stefan Monnier
2016-04-05 14:44 ` Alan Mackenzie
2016-03-18 16:27 ` Stefan Monnier
2016-03-18 19:16 ` Alan Mackenzie
2016-03-18 19:40 ` 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=56E8106E.7020402@easy-emacs.de \
--to=andreas.roehler@easy-emacs.de \
--cc=23019@debbugs.gnu.org \
--cc=acm@muc.de \
/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.