all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: dgutov@yandex.ru,  dancol@dancol.org,  casouri@gmail.com,
	emacs-devel@gnu.org,  theo@thornhill.no,  geza.herman@gmail.com
Subject: Re: treesit indentation "blinking"
Date: Thu, 30 Mar 2023 15:43:49 +0100	[thread overview]
Message-ID: <87bkkawb8a.fsf@gmail.com> (raw)
In-Reply-To: <83wn2y49v9.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 30 Mar 2023 17:00:42 +0300")

Eli Zaretskii <eliz@gnu.org> writes:

> This is a community project; without active collaboration of all the
> contributors it wouldn't be such a success.  It should go without
> saying that when someone proposes a change and the discussion then
> concludes the change needs small adaptations, the person who proposed
> the change will then go ahead and install those small adaptations.
> Without such minimal collaboration, we as a project will get nowhere.

But "the discussion" _didn't_ conclude that.  You concluded that.  I'm
not interesting in designing a defcustom, figuring out if it should be a
boolean or a string, what the default should be, the docstring, the
NEWS, etc for something which I think is a bug.

I've never insisted other people to modify their work in ways they
aren't confident in.  They would probably politely refuse it and maybe I
would be slightly disappointed, but I could always do those changes
myself if they are indeed easy. "Unfriendly" would be a really bizarre
judgement to bestow on someone who volunteered time and code to my
project and happened not to agree on a detail.

> (with very few minor customizations), and so I do see the electric
> reindentation in c++-mode all the time, and am used to it.  If most
> users don't disable the default electric behavior in CC Mode, they
> will not see c++-ts-mode behavior as "jarring".

Users coming from other editors like Microsoft Visual Studio will.  You
asked for feedback on other editors, I'm giving it to you.  And there's
also the fact that c++-ts-mode does _not_ behave like c++-mode w.r.t to
indentation to start with.  There are many indentation differences, even
without the electricity part.

>> But maybe someone does..  I wasn't even the first to report this.
>> Daniel did in this list and Geza Herman did in #61412.
>
> Maybe Daniel also disables the electric behavior of CC mode?  In any
> case, customizing electric-indent-chars could solve Daniel's problems
> as well.

But why subject new users to the same strangeness?  Presuming 

>> > Also, which version of the tree-sitter C++ grammar library do you have
>> > installed?
>> 
>> I don't know how to answer that.  I used M-x
>> treesit-install-language-grammar RET "cpp" and accepted the default in
>> all prompts.  I presume it installs the latest version of the Git repo.
>> I've just reinstalled today.
>
> Then I don't know why we don't see the same behavior.  Beats me.

Dmitry has reproduced it.  It's not a "sometimes only" thing.  Happens
consistently.

  >> JT: And did you try the final example that I showed in the animated gif?
  >> JT:That's even more "bouncy", at least in my book.
  > DG: Yep, I see that. 

My opinion is if this is a problem with the indentation rules, then we
should either fix those indentation rules or turn off the electric
features that rely on those temporarily broken indentation rules.  As
the rules get fixed, then adding the features back makes sense.  The
current situation is inconsistent, IMO.

>> You can _see_ in the GIF what I type.  I've just using normal keys for
>> self-insert.  Then C-p, and some C-f to position my cursor before the
>> ';;', then C-d to delete the two ';;'. And then add them back again with
>> two ';;'.  After the first ';' the line goes back, then the second one,
>> and the line goes forward ';'.
>
> Similar things happen with CC mode.  Perhaps not in this particular
> situation, but in others.

If you think this indentation back and forth as you type something as
innocent as two ';;' is acceptable behaviour, then fine.  I though there
was consensus that this was undesired in the new mode and volunteered my
analysis and a fix.  If there isn't such a consensus, then I'll see
myself out.

>> Also see the original recipe of bug#62142, which is quite easy to
>> follow, for more bouncing.  Can't you reproduce this either?
>
> I'm confused by the description there, and we just discovered that you
> said there to disable electric-indent-mode when you really meant
> electric-pair-mode.  So maybe post a revised example there (or here),
> this time without any mistakes, and let's take it from there.

I didn't mean _my_ description, I meant Geza's example.  Thus I wrote
"original recipe" of that bug. IOW, the post that created the bug#62412.
That's the one you could look intro reproducing, if you're interested.

But if you really want to focus on that other particular message of
mine, it is only describing the different indentation behaviour of
c++-ts-mode vs c++-mode, identifying the strengths and weaknesses of
each, in ways that aren't particularly critical of one vs the other.

João



  reply	other threads:[~2023-03-30 14:43 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-22 20:49 treesit indentation "blinking" Daniel Colascione
2023-03-23  0:00 ` Yuan Fu
2023-03-23  0:07   ` Daniel Colascione
2023-03-23  1:02     ` Yuan Fu
2023-03-23  4:51       ` Daniel Colascione
2023-03-23 20:04         ` Yuan Fu
2023-03-23 21:10           ` Daniel Colascione
2023-03-23 21:24             ` Dmitry Gutov
2023-03-25  9:05               ` João Távora
2023-03-25 12:42                 ` Dmitry Gutov
2023-03-25 14:42                   ` Eli Zaretskii
2023-03-25 16:18                     ` João Távora
2023-03-28 22:11                       ` João Távora
2023-03-28 23:57                         ` Daniel Colascione
2023-03-29  2:26                         ` Eli Zaretskii
2023-03-29 22:30                           ` João Távora
2023-03-29 22:37                             ` Herman, Géza
2023-03-29 23:25                               ` João Távora
2023-03-30  7:47                                 ` Herman, Géza
2023-03-29 22:56                             ` Lynn Winebarger
2023-03-30  7:43                             ` Eli Zaretskii
2023-03-30  8:58                               ` Dmitry Gutov
2023-03-30  9:15                                 ` João Távora
2023-03-30  9:06                               ` João Távora
2023-03-30  9:20                                 ` Dmitry Gutov
2023-03-30  9:28                                   ` João Távora
2023-03-30  9:36                                     ` Dmitry Gutov
2023-03-30 10:00                                       ` João Távora
2023-03-30 16:29                                         ` Dmitry Gutov
2023-03-30 17:14                                           ` João Távora
2023-03-30 10:07                                 ` Eli Zaretskii
2023-03-30 10:26                                   ` Herman, Géza
2023-03-30 13:39                                     ` Eli Zaretskii
2023-03-30 15:03                                       ` Herman, Géza
2023-03-30 14:58                                     ` Eli Zaretskii
2023-04-01 19:39                                       ` Yuan Fu
2023-04-02  1:49                                         ` Yuan Fu
2023-04-02  5:31                                           ` Eli Zaretskii
2023-04-02 14:26                                           ` Alan Mackenzie
2023-04-02 15:48                                             ` João Távora
2023-04-02 17:04                                               ` Alan Mackenzie
2023-04-02 17:23                                                 ` João Távora
2023-04-02 17:51                                                   ` Eli Zaretskii
2023-04-02 18:04                                                     ` João Távora
2023-04-02 18:14                                                       ` Eli Zaretskii
2023-04-02 21:38                                                         ` João Távora
2023-04-02 21:21                                                   ` Dmitry Gutov
2023-04-02 21:40                                                     ` João Távora
2023-04-03  9:59                                                     ` Alan Mackenzie
2023-04-03 10:28                                                       ` João Távora
2023-04-03 12:07                                                       ` Dmitry Gutov
2023-04-03 12:56                                                         ` Alan Mackenzie
2023-04-03 20:58                                                           ` Dmitry Gutov
2023-04-03 21:59                                                         ` Daniel Colascione
2023-04-03 22:10                                                           ` Dmitry Gutov
2023-04-04  8:31                                                           ` João Távora
2023-04-07 14:20                                                           ` Daniel Martín
2023-04-08  1:32                                                             ` Dmitry Gutov
2023-04-08  2:42                                                               ` Yuan Fu
2023-04-08 18:59                                                               ` Daniel Martín
2023-04-03 21:47                                             ` parser error recovery algorithm vs " Stephen Leake
2023-04-04 12:01                                               ` John Yates
2023-04-04 13:40                                                 ` Dmitry Gutov
2023-04-04 16:00                                                   ` Stephen Leake
2023-04-04 13:50                                                 ` Stephen Leake
2023-04-04 14:05                                                   ` Dmitry Gutov
2023-03-30 11:05                                   ` João Távora
2023-03-30 14:00                                     ` Eli Zaretskii
2023-03-30 14:43                                       ` João Távora [this message]
2023-03-30 14:52                                         ` Eli Zaretskii
2023-03-30 15:42                                           ` João Távora
2023-03-25 16:14                   ` João Távora
2023-03-24 11:39             ` Eli Zaretskii

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=87bkkawb8a.fsf@gmail.com \
    --to=joaotavora@gmail.com \
    --cc=casouri@gmail.com \
    --cc=dancol@dancol.org \
    --cc=dgutov@yandex.ru \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=geza.herman@gmail.com \
    --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 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.