unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Daan Ro <daanturo@gmail.com>
Cc: 74412@debbugs.gnu.org, liaotx2@gmail.com
Subject: bug#74412: 31.0.50; Treesit-outline conflict with outli in Emacs 31
Date: Thu, 21 Nov 2024 11:07:14 +0200	[thread overview]
Message-ID: <86o729q7jx.fsf@gnu.org> (raw)
In-Reply-To: <85CA4585-4E56-482E-AB91-2D0046D9B659@getmailspring.com> (message from Daan Ro on Thu, 21 Nov 2024 15:16:14 +0700)

> Date: Thu, 21 Nov 2024 15:16:14 +0700
> From: Daan Ro <daanturo@gmail.com>
> Cc: "liaotx2@gmail.com" <liaotx2@gmail.com>, 
>  "74412@debbugs.gnu.org" <74412@debbugs.gnu.org>
> 
> Before treesit.el went to set those variables, there have been already a
> bunch of packages based on outline-minor-mode for partitioning code into
> sections using comments only by highlighting headers and providing
> navigation, folding, etc. inspired by emacs-lisp-mode's outline-regexp
> settings.
> 
> Such ones enable a feel of "literate" programming by bringing
> outline-mode features to code section delimited by headings (special
> comments like ";;;", ";; *") using just comments regardless of code
> semantic.
> 
> The above is my use of outline-minor-mode, maybe other people have
> different use cases. treesit.el makes the configuration harder by the
> additional variable setting. I wish there's a hook like
> treesit-after-major-mode-setup-hook to let people fine-tune or even undo
> settings, but of course treesit-disable-features to prevent any
> execution from the start is still better.

There's a mode hook run by every mode based on treesit.el, so if the
settings by treesit.el are inappropriate, and the major mode itself
somehow decided to use them anyway, and the user doesn't like that,
the user should be able to countermand the treesit.el settings in that
mode hook.

In addition, packages that use outline-minor-mode in ways that are
incompatible with what treesit.el does should be able to reset these
variables to nil or to some other function, as they need.

The purpose of treesit.el doing this is to make it easier for
treesit-based modes to set up their support for outline-minor-mode, so
that we won't need to perform the same settings in every major mode
based on tree-sitter.  I don't see anything wrong here.  Modes and
packages which for some reason don't like that should override these
values, and that is easy enough to do without adding any user options.
Let's keep in mind that every new user option makes Emacs more complex
to use for users, which need to learn about the option and modify
their init files.  Instead, modes and packages should DTRT by default
without requiring users to get their (mode's) act together.






  reply	other threads:[~2024-11-21  9:07 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-18  2:59 bug#74412: 31.0.50; Treesit-outline conflict with outli in Emacs 31 Taka Obsid
2024-11-18 12:29 ` Eli Zaretskii
2024-11-19  1:47   ` Taka Obsid
2024-11-19 15:37     ` Eli Zaretskii
2024-11-19 18:09 ` Juri Linkov
2024-11-20  3:34   ` Taka Obsid
2024-11-20  7:15     ` Juri Linkov
2024-11-20 14:06       ` Taka Obsid
2024-11-20 17:21         ` Juri Linkov
2024-11-20 18:23         ` Juri Linkov
2024-11-21  1:48           ` Taka Obsid
2024-11-21  6:51             ` Eli Zaretskii
2024-11-20 17:06 ` Daan Ro
2024-11-20 17:18   ` Juri Linkov
2024-11-20 17:51     ` Daan Ro
2024-11-20 18:25       ` Juri Linkov
2024-11-20 18:53     ` Eli Zaretskii
2024-11-20 18:50   ` Eli Zaretskii
2024-11-21  8:16     ` Daan Ro
2024-11-21  9:07       ` Eli Zaretskii [this message]
2024-11-23 20:46         ` Yuan Fu
2024-11-21 17:58       ` Juri Linkov

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=86o729q7jx.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=74412@debbugs.gnu.org \
    --cc=daanturo@gmail.com \
    --cc=liaotx2@gmail.com \
    /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).