unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Yuan Fu <casouri@gmail.com>
To: Theodor Thornhill <theo@thornhill.no>
Cc: emacs-devel@gnu.org, Eli Zaretskii <eliz@gnu.org>,
	monnier@iro.umontreal.ca
Subject: Re: CC Mode -> Tree sitter challenge
Date: Sat, 5 Nov 2022 18:13:14 -0700	[thread overview]
Message-ID: <4E432374-A97A-48A0-A1C8-89C1DB47A7F8@gmail.com> (raw)
In-Reply-To: <87a655xspj.fsf@thornhill.no>



> On Nov 5, 2022, at 9:38 AM, Theodor Thornhill <theo@thornhill.no> wrote:
> 
> 
> Hi again, Eli!
> 
>>> 
>>> Interesting. My guess is that there are still some improvement possible in the indent-region code, considering that part of treesit.el is quite new.
>>> 
>>> What do you think, Yuan? Any thoughts?
>>> 
>>> Anyways, I'll keep working on this and see how far I get next coming weeks. At least in performance it seems I have a good thing going here :-)
>>> 
>> 
>> Thinking of it, some of the indentation questions isn't compiled. I'll run it again later when they are compiled as well :-)
>> 
> 
> Yes, that was the issue.  Now the scores are as follows:

The indentation code has a list of rules, and it runs each rule top-to-bottom until one rules matches, then it uses that rule to determine how much to indent. The ordering of each rule could be tweaked so that most frequent case comes forward. We can also arrange these rules not linearly but in a tree, so if one rules matches/doesn’t match, some other rules can be skipped.

What exactly did you compile? I tried byte-compiling indentation rules before but didn’t see a significant speed-up.

Yuan


  parent reply	other threads:[~2022-11-06  1:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-04 20:34 CC Mode -> Tree sitter challenge Theodor Thornhill
2022-11-04 20:36 ` Theodor Thornhill
2022-11-04 20:38 ` Stefan Monnier
2022-11-04 20:44   ` Theodor Thornhill
2022-11-04 23:10 ` Yuan Fu
2022-11-05  7:56   ` Theodor Thornhill
2022-11-06  1:01     ` Yuan Fu
2022-11-06  5:54       ` Theodor Thornhill
2022-11-05  9:13 ` Eli Zaretskii
2022-11-05 13:12   ` Theodor Thornhill
2022-11-05 13:31     ` Eli Zaretskii
2022-11-05 13:42       ` Theodor Thornhill
2022-11-05 14:37       ` Theodor Thornhill
2022-11-05 14:55         ` Eli Zaretskii
2022-11-05 15:06           ` Theodor Thornhill
2022-11-05 15:27             ` Theodor Thornhill
2022-11-05 16:38               ` Theodor Thornhill
2022-11-05 16:43                 ` Eli Zaretskii
2022-11-06  1:13                 ` Yuan Fu [this message]
2022-11-06  6:04                   ` Theodor Thornhill
2022-11-07  0:11                     ` Yuan Fu
2022-11-07  8:05                       ` Theodor Thornhill
2022-11-05 14:34   ` Stefan Monnier
2022-11-05 14:46     ` Theodor Thornhill

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=4E432374-A97A-48A0-A1C8-89C1DB47A7F8@gmail.com \
    --to=casouri@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    --cc=theo@thornhill.no \
    /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).