Subject: bug#74412: 31.0.50; Treesit-outline conflict with outli in Emacs 31

From: Taka Obsid <[email-masked]>
Date: Wed, 20 Nov 2024 22:06:52 +0800

OK I just find the java-ts-mode and treesit.el is not from `straight'... 
So the start script now only load `outli'.

I tried clone `outli' into `~/src/outli', and it works fine, while the 
straight build version is not.

I diffed the `~/.emacs.d/straight/build/outli/outli.el' with 
`~/src/outli/outli.el' and found that they are same. But there is a

file `outli-autoloads.el' in `~/.emacs.d/straight/build/outli', which be 
generated by `straight'. This file contains:

```elisp

(autoload 'outli-mode "outli" "\ Simple outline mode interaction based 
on comment-headings. This is a minor mode. If called interactively, 
toggle the `Outli mode' mode. If the prefix argument is positive, enable 
the mode, and if it is zero or negative, disable the mode. If called 
from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is 
nil, omitted, or is a positive number. Disable the mode if ARG is a 
negative number. To check whether the minor mode is enabled in the 
current buffer, evaluate the variable `outli-mode'. The mode's hook is 
called both when the mode is enabled and when it is disabled. 
\\{outli-mode-map} (fn &optional ARG)" t) (register-definition-prefixes 
"outli" '("outli-"))

```

I commented the line `(register-definition-prefixes "outli" 
'("outli-"))', and load `~/.emacs.d/straight/build/outli/outli.el',

and the `revert-buffer' works.

在 2024/11/20 15:15, Juri Linkov 写道:
>> I'm using `straight' so I start the emacs as
>>
>> ```sh
>>
>> /Applications/Emacs.app/Contents/MacOS/Emacs -q --eval "(progn
>>            (add-to-list 'load-path
>> \"~/.emacs.d/straight/build/java-ts-mode\")
> Where do you get straight's version of java-ts-mode?
>
> Does it differ from lisp/progmodes/java-ts-mode.el
> provided by Emacs core?
>
> Do you use treesit.el from `straight' too?
>
>>            (add-to-list 'load-path \"~/.emacs.d/straight/build/outli\")
>>            (require 'java-ts-mode)
>>            (require 'outli))"
>>
>> ```
>>
>> The file I tried is
>>
>> ```java
>>
>> public class Test {
>>      public static void main(String[] args) {
>>
>>      }
>> }
>>
>> ```
>>
>> You might need to enable the outli-mode in the java file manually.
> I tried this with lisp/progmodes/java-ts-mode.el,
> and can't reproduce the bug.
>
>> It seems this bug only appears in gui emacs. The `revert-buffer' works
>> fine in tui.
> Very strange, there should be no difference between gui and tui.