unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#63463: 29.0.90; Using python-ts-mode for single buffer should not alter global auto-mode-alist settings
@ 2023-05-12 12:45 Yikai Zhao
  2023-05-12 13:26 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Yikai Zhao @ 2023-05-12 12:45 UTC (permalink / raw)
  To: 63463

Hi emacs devs,

So today, out of nowhere, I noticed that some of the *.py
buffers I opened are using `python-ts-mode` instead of the default
`python-mode`, also some of my configs are not working correctly because
of this (due to different hooks etc.). I was sure I didn't enable or configure
anything related to `python-ts-mode` so that's very strange.

After some debugging, it turns out that `markdown-mode` used
`python-ts-mode` when fontifying a python code block
(https://github.com/jrblevin/markdown-mode/commit/44ac8e4f96f03149f60cb182f8b3f1503f66f6d0),
and during that, `python-ts-mode` modified the global `auto-mode-alist`
settings so that all future *.py buffers I opened use that instead.

I believe this is a bug in emacs: using some treesit-based major mode
for single buffer should not automatically alter the global settings. I
don't think previously there's any other major modes doing that.

I understand that some may argue this behavior to be reasonable based
on the thought that,
"if the user chose to use treesit for one file, then it would be good to
use treesit automatically for all future files". This MAY be true, but
in my case, I didn't choose to use it by my own. It's some lisp code
down the rabbit hole that loads it without me even realized.

I fear that this kind of issue would become more common when: 1. more
distros build emacs with treesit support by default and ship with
treesit language libraries, 2. more emacs packages tries to use
treesit-based major modes internally

(I also submitted a bug report to `markdown-mode`:
https://github.com/jrblevin/markdown-mode/issues/761)

---

In GNU Emacs 29.0.90 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars)
Repository revision: emacs-29.0.90
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12013000
System Description: Ubuntu 20.04.5 LTS

Configured using:
 'configure
 --prefix=/nix/store/4mgq52v87wxra7nqhvsspn3klp8c731m-emacs-unstable-29.0.90
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-xft --with-cairo --with-native-compilation'





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#63463: 29.0.90; Using python-ts-mode for single buffer should not alter global auto-mode-alist settings
  2023-05-12 12:45 bug#63463: 29.0.90; Using python-ts-mode for single buffer should not alter global auto-mode-alist settings Yikai Zhao
@ 2023-05-12 13:26 ` Eli Zaretskii
  2023-09-02 16:39   ` Stefan Kangas
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2023-05-12 13:26 UTC (permalink / raw)
  To: Yikai Zhao; +Cc: 63463

tags 63463 notabug wontfix
thanks

> From: Yikai Zhao <yikai@z1k.dev>
> Date: Fri, 12 May 2023 20:45:18 +0800
> 
> So today, out of nowhere, I noticed that some of the *.py
> buffers I opened are using `python-ts-mode` instead of the default
> `python-mode`, also some of my configs are not working correctly because
> of this (due to different hooks etc.). I was sure I didn't enable or configure
> anything related to `python-ts-mode` so that's very strange.
> 
> After some debugging, it turns out that `markdown-mode` used
> `python-ts-mode` when fontifying a python code block
> (https://github.com/jrblevin/markdown-mode/commit/44ac8e4f96f03149f60cb182f8b3f1503f66f6d0),
> and during that, `python-ts-mode` modified the global `auto-mode-alist`
> settings so that all future *.py buffers I opened use that instead.
> 
> I believe this is a bug in emacs: using some treesit-based major mode
> for single buffer should not automatically alter the global settings. I
> don't think previously there's any other major modes doing that.

It is not a bug, it is the intended behavior that loading
python-ts-mode makes that mode the default for Python files.

However, the root cause of the issue you are describing seems to be
markdown-mode, which is not part of Emacs.  I don't understand well
enough why markdown-mode needs to load python-ts-mode, but in any
case, this issue should be solved in markdown-mode, I think.

> (I also submitted a bug report to `markdown-mode`:
> https://github.com/jrblevin/markdown-mode/issues/761)

Thanks; let's see what the markdown-mode's developers say about this.





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#63463: 29.0.90; Using python-ts-mode for single buffer should not alter global auto-mode-alist settings
  2023-05-12 13:26 ` Eli Zaretskii
@ 2023-09-02 16:39   ` Stefan Kangas
  0 siblings, 0 replies; 3+ messages in thread
From: Stefan Kangas @ 2023-09-02 16:39 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Yikai Zhao, 63463-done

Eli Zaretskii <eliz@gnu.org> writes:

> tags 63463 notabug wontfix
> thanks
>
>> From: Yikai Zhao <yikai@z1k.dev>
>> Date: Fri, 12 May 2023 20:45:18 +0800
>>
>> So today, out of nowhere, I noticed that some of the *.py
>> buffers I opened are using `python-ts-mode` instead of the default
>> `python-mode`, also some of my configs are not working correctly because
>> of this (due to different hooks etc.). I was sure I didn't enable or configure
>> anything related to `python-ts-mode` so that's very strange.
>>
>> After some debugging, it turns out that `markdown-mode` used
>> `python-ts-mode` when fontifying a python code block
>> (https://github.com/jrblevin/markdown-mode/commit/44ac8e4f96f03149f60cb182f8b3f1503f66f6d0),
>> and during that, `python-ts-mode` modified the global `auto-mode-alist`
>> settings so that all future *.py buffers I opened use that instead.
>>
>> I believe this is a bug in emacs: using some treesit-based major mode
>> for single buffer should not automatically alter the global settings. I
>> don't think previously there's any other major modes doing that.
>
> It is not a bug, it is the intended behavior that loading
> python-ts-mode makes that mode the default for Python files.
>
> However, the root cause of the issue you are describing seems to be
> markdown-mode, which is not part of Emacs.  I don't understand well
> enough why markdown-mode needs to load python-ts-mode, but in any
> case, this issue should be solved in markdown-mode, I think.
>
>> (I also submitted a bug report to `markdown-mode`:
>> https://github.com/jrblevin/markdown-mode/issues/761)
>
> Thanks; let's see what the markdown-mode's developers say about this.

I'm therefore closing this bug report.





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-02 16:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-12 12:45 bug#63463: 29.0.90; Using python-ts-mode for single buffer should not alter global auto-mode-alist settings Yikai Zhao
2023-05-12 13:26 ` Eli Zaretskii
2023-09-02 16:39   ` Stefan Kangas

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).