On Aug 26, 2023, at 1:04 PM, Eli Zaretskii <eliz@gnu.org> wrote:
I guess I’m looking for something like `(treesit-preferred LANG)’ or `(default-major-mode LANG)’.

There's no such thing, and probably won't be, at least not soon enough
for you to rely on it.  We are still learning how to deal with this
new situation.

Got it, thanks.  There has always been some ambiguity when there are several modes competing, but usually there is a “dominant strain” consumer modes can adopt as the default.

As for your suggestions: treesit-preferred is problematic, because no
one says the user will always prefer ts modes for all of the
languages, nor do we want to force them.  As for default-major-mode, I
don't understand how could we implement that, except by deferring to
user options again.

This would be a top-level user option, but it would be “one stop shopping” for the user.  I.e. they would not need to configure this and `major-mode-remap-alist’.

One (likely too) simple idea: a function to ask emacs “What mode would you enable if I opened /path/to/file.EXT”, without actually having to open it.  Consumer modes could check that for relevant paths and extensions, and opt to use that mode (if everything else checks out).

 . if a ts mode is already loaded (featurep test)

The consumer-mode may be the first to use it.

 . if auto-mode-alist defines a ts mode for the relevant files

I mentioned that in my #5. I suppose that’s a cousin of my (too) simple idea above, except for dir-locals etc.