unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 68246@debbugs.gnu.org, casouri@gmail.com, monnier@iro.umontreal.ca
Subject: bug#68246: 30.0.50; Add non-TS mode as extra parent of TS modes
Date: Sat, 6 Jan 2024 13:52:48 +0000	[thread overview]
Message-ID: <CALDnm50ZnLYJBstaBH1zJcfk1g3kcayzQ1oea04JvfDCLbmhvA@mail.gmail.com> (raw)
In-Reply-To: <83v886ubpu.fsf@gnu.org>

On Sat, Jan 6, 2024 at 8:07 AM Eli Zaretskii <eliz@gnu.org> wrote:

> let's agree to disagree, because I already explained this twice at
> least.

I was just commenting on your earlier words

"That's because a language parser will not have any notion of a sexp,
so it cannot help."

That's manifestly wrong.  Even with a limited understanding of what
a sexp is, it can definitely contribute to sexp navigation as used
by scan-sexp clients.

> Again, if you disagree, let's agree to disagree.

Yes, let's.  But what you said doesn't contradict my assertion that TS
the can feed into scan-sexps in ways that are useful.

> > And the way this could work in Emacs is for TreeSitter to feed into
> > scan-sexps.
>
> I'm not sure I understand how TS could feed scan-sexps.  Did you look
> at the implementation of scan-sexps?  AFAICT, there's no way to base
> the code there on TS, except by providing a completely different
> implementation (assuming TS parsers even provide the required
> information).

One reasonably effective way to do it is just have
syntax-propertize-function propertize text based on TS nodes, which
is what c-ts-mode does today to make show-paren-mode do the right
thing to angle brackets.  Pretty useful already.  You're still running
through text properties and that's maybe not very pretty, but an
implementation detail all the same.  There could be be some more
efficient connection between sexps and TS (or whatever parser)
later on.

> > > > > I invite you to compare CC mode with c-ts-mode, and see for yourself
> > > > > how the common grounds are very small.  It seems surprising at first
> > > > > sight, but once you look at the code, it is very clear.
> > > >
> > > > And this is mainly because CC mode is, well, rather corpulent software,
> > > > let's put it like that.  This is why I wrote it makes sense to start
> > > > from scratch for this one.
> > >
> > > A discussion where you brush aside any argument that doesn't fit your
> > > theory is not a useful one.
> >
> > ? You write this precisely in the point where I _agree_ with you.
>
> You "agree" for the wrong reasons.  You are, in fact, claiming that
> the CC mode cannot be an example of a problem because of unrelated
> reasons.  I'm saying that the reasons are related.

Actually it _could_ be an example.  A c-uber-base-mode would have
_some_ benefit, like it would be a good place to stash snippets.
Just not as much benefit as others which have code.

> > > This means that the
> > > base-mode hook will not see a mode that is ready for work, only its
> > > beginning.
> >
> > Correct.  But a major-mode doesn't have to be "ready for work" (I presume
> > you mean ready for editing) for the hook to be useful.  That hook would
> > be perfectly suitable for setting variables used by minor modes and other
> > things. (eglot-server-program, flymake-diagnostic-functions,  company-backends,
> > mode-line-format, etc etc)
> > For turning on minor modes (eglot-ensure, company-mode, yasnippet-minor-mode,)
> > For binding commands.
>
> Stefan's patch solves these cases in a simpler manner.

I don't oppose Stefan's patch strongly, but I don't think it's
simpler.  For one, it's innovative, a new way to do things
that we could already do with a simpler-to-reason inheritance
that we've had much longer.

As far as motivation goes, the problems in Eglot and Yasnippet
are easily solvable without it.  Not sure about CEDET.

As Stefan K points out this needs calling out in *Help*.

> > I couldn't see the problem in either python.el or sh-script.el.
>
> Search for bugs in those two files, and you will see the issues that I
> had in mind.

Yes, will most definitely start my "search for bugs" in two
files totalling 10000 lines and you know in 200 years or so.

João





  reply	other threads:[~2024-01-06 13:52 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-04 22:11 bug#68246: 30.0.50; Add non-TS mode as extra parent of TS modes Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-04 23:02 ` João Távora
2024-01-04 23:05   ` Dmitry Gutov
2024-01-04 23:41     ` João Távora
2024-01-04 23:18   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-04 23:48     ` João Távora
2024-01-04 23:59       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-05  0:35         ` João Távora
2024-01-05  0:43           ` Yuan Fu
2024-01-05  7:51       ` Eli Zaretskii
2024-01-05 11:27         ` João Távora
2024-01-05 13:26           ` Eli Zaretskii
2024-01-05 15:16             ` João Távora
2024-01-05 15:34               ` Eli Zaretskii
2024-01-05 18:02                 ` João Távora
2024-01-05 18:56                   ` Eli Zaretskii
2024-01-05 23:20                     ` João Távora
2024-01-05 23:51                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06  0:16                         ` João Távora
2024-01-06  4:08                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06 14:36                             ` João Távora
2024-01-06 15:50                               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-06 22:22                                 ` João Távora
2024-01-07  6:55                                   ` Eli Zaretskii
2024-01-08  0:12                                     ` João Távora
2024-01-08  3:34                                       ` Eli Zaretskii
2024-01-08 10:50                                         ` João Távora
2024-01-08 13:13                                           ` Eli Zaretskii
2024-01-08 14:45                                             ` João Távora
2024-01-08 17:15                                               ` Eli Zaretskii
2024-01-14  2:19                                                 ` Yuan Fu
2024-01-14  3:10                                                   ` João Távora
2024-01-14  4:00                                                     ` Yuan Fu
2024-01-14  7:02                                                     ` Eli Zaretskii
2024-01-14 23:40                                                       ` João Távora
2024-01-15 12:38                                                         ` Eli Zaretskii
2024-01-15 14:45                                                           ` João Távora
2024-01-15 15:00                                                             ` Eli Zaretskii
2024-01-15 15:09                                                               ` João Távora
2024-01-15  2:10                                                       ` Dmitry Gutov
2024-01-15 12:46                                                         ` Eli Zaretskii
2024-01-15 18:32                                                           ` Dmitry Gutov
2024-01-15 18:52                                                             ` Eli Zaretskii
2024-01-15 20:17                                                               ` Dmitry Gutov
2024-01-15 20:27                                                                 ` Eli Zaretskii
2024-01-15 15:27                                                         ` João Távora
2024-01-15 20:51                                                           ` Dmitry Gutov
2024-01-15 23:11                                                             ` João Távora
2024-01-16  2:09                                                               ` Dmitry Gutov
2024-01-16 11:06                                                                 ` João Távora
2024-01-17  2:41                                                                   ` Dmitry Gutov
2024-01-17 10:20                                                                     ` João Távora
2024-01-18  0:47                                                                       ` Dmitry Gutov
2024-01-17 17:08                                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-18  5:05                                                           ` Dmitry Gutov
2024-01-18 14:17                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-18 19:55                                                               ` Dmitry Gutov
2024-01-18 21:24                                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-19  1:28                                                                   ` Dmitry Gutov
2024-01-19 12:43                                                                     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-19 12:53                                                                       ` João Távora
2024-01-19 13:19                                                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-19 14:01                                                                           ` João Távora
2024-01-19 18:05                                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-19 22:47                                                                               ` João Távora
2024-01-20  7:03                                                                                 ` Eli Zaretskii
2024-01-20 10:16                                                                                   ` João Távora
2024-01-21  0:32                                                                                     ` Yuan Fu
2024-01-21  9:54                                                                                       ` Eli Zaretskii
2024-01-24  6:20                                                                                         ` Yuan Fu
     [not found]                                                                                         ` <jwvfrxt5e75.fsf-monnier+emacs@gnu.org>
     [not found]                                                                                           ` <86v86ovp6j.fsf@gnu.org>
2024-03-09 15:39                                                                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-20  5:43                                                                       ` Dmitry Gutov
2024-01-14  6:33                                                   ` Eli Zaretskii
2024-01-14 23:18                                                     ` João Távora
2024-01-15 12:35                                                       ` Eli Zaretskii
2024-01-15 14:49                                                         ` João Távora
2024-01-08  4:11                                   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-08 11:11                                     ` João Távora
2024-01-08 12:45                                     ` Eli Zaretskii
2024-01-08 18:57                                       ` Dmitry Gutov
2024-01-08 19:55                                         ` Eli Zaretskii
2024-01-08 20:06                                           ` Dmitry Gutov
2024-01-08 22:12                                             ` João Távora
2024-01-09  3:28                                             ` Eli Zaretskii
2024-01-08 19:18                                       ` Stefan Kangas
2024-01-08 19:57                                         ` Eli Zaretskii
2024-01-08 20:05                                           ` Dmitry Gutov
2024-01-09  3:27                                             ` Eli Zaretskii
2024-01-16  2:32                                         ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-16 23:29                                           ` João Távora
2024-01-17  0:02                                             ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-17  0:49                                               ` João Távora
2024-01-17  3:45                                           ` Dmitry Gutov
2024-01-19  5:12                                           ` Yuan Fu
2024-01-20  5:47                                             ` Dmitry Gutov
2024-01-20  7:46                                               ` Eli Zaretskii
2024-01-21  0:32                                                 ` Dmitry Gutov
2024-01-08 19:04                                     ` Dmitry Gutov
2024-01-09  0:10                                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09  0:39                                         ` João Távora
2024-01-09  0:52                                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09  1:05                                             ` João Távora
2024-01-09  1:04                                               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09  1:11                                                 ` João Távora
2024-01-09  3:49                                                   ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09 10:52                                                     ` João Távora
2024-01-10  1:18                                                     ` Dmitry Gutov
2024-01-10 16:11                                                       ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-11  3:41                                                         ` Dmitry Gutov
2024-01-09  4:49                                               ` Stefan Kangas
2024-01-09  7:24                                               ` Kévin Le Gouguec
2024-01-09  1:09                                         ` Dmitry Gutov
2024-01-09  1:31                                           ` João Távora
2024-01-09  3:55                                           ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-09 11:05                                             ` João Távora
2024-01-10  1:15                                               ` Dmitry Gutov
2024-01-10  1:59                                                 ` João Távora
2024-01-10 16:04                                               ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-10 17:02                                                 ` Dmitry Gutov
2024-01-10 17:31                                                 ` João Távora
2024-01-10  1:41                                             ` Dmitry Gutov
2024-01-10  6:24                                               ` Stefan Kangas
2024-01-10 15:51                                                 ` João Távora
2024-01-11  3:49                                                 ` Dmitry Gutov
2024-01-16  2:35                                                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-16 10:34                                                   ` João Távora
2024-01-16 17:45                                                     ` Dmitry Gutov
2024-01-16 22:00                                                       ` João Távora
2024-01-17  2:05                                                         ` Dmitry Gutov
2024-01-17 10:31                                                           ` João Távora
2024-01-17 23:37                                                             ` Dmitry Gutov
2024-01-06  8:12                           ` Eli Zaretskii
2024-01-06  8:07                       ` Eli Zaretskii
2024-01-06 13:52                         ` João Távora [this message]
2024-01-05 19:03                   ` Stefan Kangas
2024-01-05 23:37                     ` João Távora
2024-01-06  8:09                       ` Eli Zaretskii
2024-01-06  3:19               ` Yuan Fu
2024-01-06  3:36                 ` Dmitry Gutov
2024-01-06  4:16                 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-07  6:59                   ` Yuan Fu
2024-01-06 14:54                 ` João Távora
2024-01-08 18:16     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-01-05  7:40 ` Eli Zaretskii
2024-01-05 18:43 ` Stefan Kangas
2024-01-05 19:11   ` Stefan Kangas

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=CALDnm50ZnLYJBstaBH1zJcfk1g3kcayzQ1oea04JvfDCLbmhvA@mail.gmail.com \
    --to=joaotavora@gmail.com \
    --cc=68246@debbugs.gnu.org \
    --cc=casouri@gmail.com \
    --cc=eliz@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).