From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#62333: 30.0.50; Issue with tree-sitter syntax tree during certain changes Date: Mon, 27 Mar 2023 16:29:55 +0300 Message-ID: <83fs9q9vak.fsf@gnu.org> References: <87fs9yur7r.fsf@gmail.com> <83h6uc549z.fsf@gnu.org> <665745A2-FDC8-45DE-BFF5-2F688FC85431@gmail.com> <491b788f-c3c3-4877-daa0-f515be9f3a17@yandex.ru> <83sfduelab.fsf@gnu.org> <8FC25A01-6934-43BB-899C-CA5926BEA3CF@gmail.com> <83jzz5c8ml.fsf@gnu.org> <83edpdc6sn.fsf@gnu.org> <1ca302bf-99dc-7f9e-8544-063064a1cb21@yandex.ru> <831qlcdisi.fsf@gnu.org> <398721ad-79b0-3f6d-97b3-4902d9bfbe39@yandex.ru> <83wn34c2qa.fsf@gnu.org> <3b3d82d1-f0f6-a768-a5db-8dc9386a5a34@yandex.ru> <83r0tcbz8g.fsf@gnu.org> <1967361679760225@umbzx4hqxrw5qxo7.sas.yp-c.yandex.net> <83mt40bxzd.fsf@gnu.org> <83jzz4bugh.fsf@gnu.org> <3d64520c-54da-a04a-ed0d-a66b4e753f8a@yandex.ru> <831qlcaysh.fsf@gnu.org> <29679184-7366-0167-9e94-def97048f663@yandex.ru> <83v8inal29.fsf@gnu.org> <9886ffa5-ead2-50d5-a325-f6704b736ada@yandex.ru> Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25374"; mail-complaints-to="usenet@ciao.gmane.io" Cc: wkirschbaum@gmail.com, casouri@gmail.com, 62333@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Mar 27 15:31:18 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pgmwQ-0006N2-5c for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 27 Mar 2023 15:31:18 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pgmwD-0004j7-Aj; Mon, 27 Mar 2023 09:31:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pgmwB-0004ig-1X for bug-gnu-emacs@gnu.org; Mon, 27 Mar 2023 09:31:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pgmwA-0003H5-NX for bug-gnu-emacs@gnu.org; Mon, 27 Mar 2023 09:31:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pgmwA-0005nM-5v for bug-gnu-emacs@gnu.org; Mon, 27 Mar 2023 09:31:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 27 Mar 2023 13:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 62333 X-GNU-PR-Package: emacs Original-Received: via spool by 62333-submit@debbugs.gnu.org id=B62333.167992380422134 (code B ref 62333); Mon, 27 Mar 2023 13:31:02 +0000 Original-Received: (at 62333) by debbugs.gnu.org; 27 Mar 2023 13:30:04 +0000 Original-Received: from localhost ([127.0.0.1]:46821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgmvD-0005ko-26 for submit@debbugs.gnu.org; Mon, 27 Mar 2023 09:30:03 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:43152) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pgmv9-0005k8-RB for 62333@debbugs.gnu.org; Mon, 27 Mar 2023 09:30:00 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pgmv4-00021K-DM; Mon, 27 Mar 2023 09:29:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=WJbrZLkEWat7feWedTvbEq91XrWP2fD/Hx7jljkL3tQ=; b=Pu+bWwakFDyt kz0d+THzMbbwsetbAYwVvfQQnh85IbQXsxqK3QzqQPJU6IJqKNvioYu7EoHvMmAqcnRLOpqYyO3Cm LIcKU6rlq7ER/J1mXzYCyzwp9MZ2zHhnlXYeJ7kTUFaMR2xtImUiBQ6tno/KVfhCV4N/E6gq0tw8a ShHooLfP+F6FCt9btgPGQ7g3nbH22htCeMA76Tf+dzzmKmMTr/4gO/snJaTkLhEszxWRY3qxpMa/p /BNo6EFUaryYHVY2uM2c9KvVszEDmF8hvDg3ANTfytmfHaBQssQS6jsWhav7bp/ZpYh/5Du6KSGCl dtsuAuueCywhEyBp/QsJkg==; Original-Received: from [87.69.77.57] (helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pgmv3-0004hG-0s; Mon, 27 Mar 2023 09:29:53 -0400 In-Reply-To: <9886ffa5-ead2-50d5-a325-f6704b736ada@yandex.ru> (message from Dmitry Gutov on Mon, 27 Mar 2023 01:00:20 +0300) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:258727 Archived-At: > Date: Mon, 27 Mar 2023 01:00:20 +0300 > Cc: wkirschbaum@gmail.com, casouri@gmail.com, 62333@debbugs.gnu.org > From: Dmitry Gutov > > > So you are suggesting to introduce kludges like font-lock-dont-widen > > in all of those places? > > font-lock-dont-widen is a kludge, but that's largely determined by the > way it's defined and used. With parser-based features, we have an opportunity to do this in a cleaner manner. > If we take indent-for-tab-command, for example, it doesn't have such a > variable, and doesn't really need to: the top-level command calls > 'widen', and then indent-line-function (set by major mode and altered by > e.g. mmm-mode) is free to impose its specific bounds. I thought about a lower-level, infrastructure-level, mechanism that could be used to restrict a parser to a certain region of the buffer. Then this could be used by every feature based on parsers, instead of us having to invent a separate solution for each one. > The "grand unified theory of mixed major modes" has been attempted a few > times in the past, and never reached anything practical. But here we have a unique opportunity to maybe find a solution, at least for stuff based on tree-sitter and similar libraries. That maybe not "grand", but certainly "respectable". > >> Except it's already limited by narrowing. > > > > Which is a fragile, semi-broken means, as we all know. > > What is a broken mess, is user-level narrowing. Which is why restricting parsers should not be a user-level feature. > > Look, I'm trying to see how we could come up with an infrastructure > > that will support multiple modes and other similar features in the > > same buffer without relying on narrowing, thus bypassing the > > disadvantages and difficulties that come with narrowing. I think we > > have a good chance here to come up with such a solution, specifically > > for features that us a parsing library. If you aren't interested in > > discussing that, and think we should stick to narrowing, then this > > goes nowhere, and I'd rather bow out of it. > > What I've seen here so far is you suggesting we go ahead and break the > existing convention and then let "them" (third-party authors including > myself) come up with a new working one. You are mixing two semi-separate issues: how to fix the immediate problem with blink-matching-paren (if we consider it a serious problem), and how to try solving similar issues as a whole. The latter is a long-term goal, and we can discuss it freely and calmly; whereby ideas can be brought up even if they might not be the most clever ones or the ones with which you personally agree. > My stance here is we shouldn't break it before we create a new one. No one broke anything. We are just discussing ideas. Please don't exaggerate.