From: Theodor Thornhill <theo@thornhill.no>
To: Yuan Fu <casouri@gmail.com>, Stefan Monnier <monnier@iro.umontreal.ca>
Cc: emacs-devel <emacs-devel@gnu.org>, eliz@gnu.org
Subject: Re: Plug treesit.el into other emacs constructs
Date: Thu, 15 Dec 2022 06:59:29 +0100 [thread overview]
Message-ID: <96DD7ED2-231B-4017-A2E6-D1910DDBF2B6@thornhill.no> (raw)
In-Reply-To: <0CA63C32-432C-42C5-BBAD-C6E1A7CE1806@gmail.com>
On 15 December 2022 00:31:20 CET, Yuan Fu <casouri@gmail.com> wrote:
>
>
>> On Dec 14, 2022, at 6:01 AM, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
>>
>>> I would argue that the purpose of forward-sexp is to move over items in
>>> a list.
>>
>> There are different ways to look at it. In the Lisp context where it
>> emerged, we only have "identifiers" and "parenthesized thingies", so
>> that doesn't give much guidance about what to do in-between.
>
>I see, so maybe sexp means the general, flexible AST entity. And thinking of it, my idea is just forward-list :-) And we definitely should include forward-list into the list of navigation commands we want to support, among the ones that are already brought up.
>
>>
>> The semantics I chose for SMIE is what I found to be closest to
>> past practice.
>
>That’ great! You’ve done all the experiments and thinking, and all I need to do is to understand it ;-)
>
Are you working on this, yuan? If so I'll get out of your hair.
>>> But if we move over the smallest
>>> subtree, I’d imagine it only move across the semicolon after [1].
>>
>> In my view ";" is not a substree. It's the node of a substree.
>> We can't actually move over a proper subtree in that case because there
>> is no substree whose left boundary starts right before the ";", so the
>> closest is to move over the ";" *plus* its right child.
>
>Ah, so by “smallest subtree” you basically mean “smallest non-leaf node”? Is the following logic what you have in mind?
>
>forward-sexp:
>Among all nodes that starts right after point:
>1. if we can find a smallest non-leaf node
> -> skip over it
>2. if we can only find leaf node
> -> go to the end of the immediate (smallest) parent node
> that covers point, and skip over its next sibling (by recursively applying either 1 or 2)
>
>Yuan
next prev parent reply other threads:[~2022-12-15 5:59 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-12 14:33 Plug treesit.el into other emacs constructs Theodor Thornhill
2022-12-12 14:45 ` Eli Zaretskii
2022-12-13 18:17 ` Theodor Thornhill
2022-12-12 15:46 ` Stefan Monnier
2022-12-13 18:27 ` Theodor Thornhill
2022-12-13 19:37 ` Stefan Monnier
2022-12-13 19:53 ` Yuan Fu
2022-12-13 20:06 ` Perry Smith
2022-12-13 23:19 ` Stefan Monnier
2022-12-14 8:14 ` Yuan Fu
2022-12-14 8:42 ` Theodor Thornhill
2022-12-14 14:01 ` Stefan Monnier
2022-12-14 16:24 ` Theodor Thornhill
2022-12-14 17:46 ` Stefan Monnier
2022-12-14 18:07 ` Theodor Thornhill
2022-12-14 19:25 ` Stefan Monnier
2022-12-14 19:35 ` Stefan Monnier
2022-12-14 20:04 ` Theodor Thornhill
2022-12-14 20:50 ` Stefan Monnier
2022-12-14 21:15 ` Theodor Thornhill
2022-12-14 21:34 ` Stefan Monnier
2022-12-15 19:37 ` Theodor Thornhill
2022-12-15 19:56 ` Stefan Monnier
2022-12-15 20:03 ` Theodor Thornhill
2022-12-15 20:33 ` Theodor Thornhill
2022-12-15 20:57 ` Theodor Thornhill
2022-12-24 7:00 ` Eli Zaretskii
2022-12-24 8:44 ` Yuan Fu
2022-12-24 14:01 ` Stefan Monnier
2022-12-24 14:15 ` Theodor Thornhill
2022-12-26 19:11 ` Theodor Thornhill
2022-12-26 22:46 ` Stefan Monnier
2022-12-26 22:51 ` Stefan Monnier
2022-12-27 22:15 ` Theodor Thornhill via Emacs development discussions.
2022-12-28 0:12 ` Stefan Monnier
2022-12-28 9:26 ` Theodor Thornhill via Emacs development discussions.
2022-12-28 18:01 ` Stefan Monnier
2022-12-28 18:27 ` Theodor Thornhill
2022-12-26 22:56 ` Theodor Thornhill
2022-12-27 15:46 ` Lynn Winebarger
2022-12-14 23:31 ` Yuan Fu
2022-12-15 0:05 ` Yuan Fu
2022-12-15 7:09 ` Eli Zaretskii
2022-12-15 7:14 ` Theodor Thornhill
2022-12-15 4:37 ` Stefan Monnier
2022-12-15 5:59 ` Theodor Thornhill [this message]
2022-12-15 21:23 ` Yuan Fu
2022-12-15 21:28 ` Theodor Thornhill
2022-12-13 20:02 ` Theodor Thornhill
2022-12-13 23:10 ` Stefan Monnier
2022-12-14 23:32 ` Stephen Leake
2022-12-16 10:02 ` Kévin Le Gouguec
2022-12-16 11:54 ` [SPAM UNSURE] " Stephen Leake
2022-12-17 15:30 ` Kévin Le Gouguec
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
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96DD7ED2-231B-4017-A2E6-D1910DDBF2B6@thornhill.no \
--to=theo@thornhill.no \
--cc=casouri@gmail.com \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=monnier@iro.umontreal.ca \
/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 public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).