Subject: 30.0.92; treesit-defun-prefer-top-level is still used in js, ruby-ts-mode, typescript-ts-mode, c-ts-mode and php-ts-mode

From: Vincenzo Pupillo <[email-masked]>
Date: Fri, 22 Nov 2024 14:35:50 +0100

Ciao,
I am writing a treesitter-based version of mhtml (email threads https://
lists.gnu.org/archive/html/emacs-devel/2024-11/msg00079.html). 
I started from what I did for php-ts-mode. 
In php-ts-mode the variable treesit-defun-prefer-top-level is initialized to 
t. 
This variable, whose use I had borrowed from c-ts-mode, no longer exists.
>From the Changelog.4 :  
2022-12-19  Stefan Kangas  <[email-masked]>

	Merge from origin/emacs-29

	67bc96c9d94 Remove treesit-defun-prefer-top-level and friends
	4f9bccef556 Add yaml-ts-mode (Bug#60105)
	f9cb144d45a Fix indentation in json-ts-mode (bug#60123)
	3d348c46e78 ; Handle nil ARG in treesit-beginning/end-of-defun
	1a66435dda3 New input method 'cyrillic-chuvash'
	b9227c502d7 ; Improve wording of 'format' doc string

This variable is also used by other major modes, with different value:

lisp/progmodes/c-ts-mode.el
1259:  (setq-local treesit-defun-prefer-top-level t)

lisp/progmodes/typescript-ts-mode.el
465:  (setq-local treesit-defun-prefer-top-level t)

lisp/progmodes/ruby-ts-mode.el
1202:  (setq-local treesit-defun-prefer-top-level nil)

lisp/progmodes/js.el
3919:    (setq-local treesit-defun-prefer-top-level t)

treesit-defun-prefer-top-level should have been replaced by treesit-defun-
tactic which, however, is initialized by default with a value that should 
match only (setq treesit-defun-prefer-top-level nil). 

Is it possible that this is related to problems similar to those indicated in 
bug#73404?

Thank you.

Vincenzo