From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#41897: 28.0.50; JavaScript comment filling with mhtml-mode Date: Thu, 25 Jun 2020 22:28:17 +0300 Message-ID: <70532224-5beb-b311-648c-fda352de88cb@yandex.ru> References: <20200623162837.GB6957@ACM> <10235ec5-17c3-c281-b5ed-2c65a07bd02f@yandex.ru> <20200623191713.GC6957@ACM> <4c6a9c40-a72c-1413-4e08-c7097f8bc407@yandex.ru> <20200624174333.GA8870@ACM> <20200625163301.GA10342@ACM> <20200625180722.GC10342@ACM> <20200625191359.GD10342@ACM> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="1993"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 Cc: Simen =?UTF-8?Q?Heggest=C3=B8yl?= , 41897@debbugs.gnu.org To: Alan Mackenzie Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Thu Jun 25 21:29:12 2020 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 1joXYe-0000Oe-2I for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 25 Jun 2020 21:29:12 +0200 Original-Received: from localhost ([::1]:42876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1joXYd-0005sC-0k for geb-bug-gnu-emacs@m.gmane-mx.org; Thu, 25 Jun 2020 15:29:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:49962) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1joXYU-0005r4-Sa for bug-gnu-emacs@gnu.org; Thu, 25 Jun 2020 15:29:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:57873) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1joXYU-0007C5-Iz for bug-gnu-emacs@gnu.org; Thu, 25 Jun 2020 15:29:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1joXYU-00084J-Aq for bug-gnu-emacs@gnu.org; Thu, 25 Jun 2020 15:29:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 25 Jun 2020 19:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41897 X-GNU-PR-Package: emacs Original-Received: via spool by 41897-submit@debbugs.gnu.org id=B41897.159311331030970 (code B ref 41897); Thu, 25 Jun 2020 19:29:02 +0000 Original-Received: (at 41897) by debbugs.gnu.org; 25 Jun 2020 19:28:30 +0000 Original-Received: from localhost ([127.0.0.1]:41186 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joXXy-00083P-8k for submit@debbugs.gnu.org; Thu, 25 Jun 2020 15:28:30 -0400 Original-Received: from mail-ej1-f43.google.com ([209.85.218.43]:38471) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joXXv-00083B-GL for 41897@debbugs.gnu.org; Thu, 25 Jun 2020 15:28:29 -0400 Original-Received: by mail-ej1-f43.google.com with SMTP id w16so7084550ejj.5 for <41897@debbugs.gnu.org>; Thu, 25 Jun 2020 12:28:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=/eydYXHa/Qsu2Xji8R/qscBoqlVVEiZSbRNL2j/ni9Q=; b=ZFy4zxfWwFif61c5vLo4r1qepoNLiNfSxrQUMqeI7TS6bdYlVO36T2eHWW2DmxsuTb dnRqvZH8uZVTqLgay6pNFYmvEHU7sqVM9Tn7x8BOtYgseEUBYNQPOy1JgzMz/kMcptuL +tkavTs7D6BWnhXRrKA1rHlsOt8XOzG4To9dtLps9AHxpzWR8fZKdYRcFf8XU4mJ30YS VFZNzB3w58z2CWYl57r2Uou8e7NcfPnPXr1h2FoyW7I2Lunlt7SCJjqcM4xSUiHkcEwE 4qgNQsWqD3az64MT+bTh53phUw5Vm1LD/wm2acU1y4UDUg290rQF+Acg14+XgC6NuYEx rzlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/eydYXHa/Qsu2Xji8R/qscBoqlVVEiZSbRNL2j/ni9Q=; b=FPYKoypp/KAljiumldpIQWS1hCdPR4JNv75KYoEEotP8lw/zb4kzYWWdnT+uBt31el kOIlS7SKBuQraUX2cQt9INQY1sNVKz7KK3oVFnkqjRtsK7yeKfK9tlw5/kzHytcnL5Gv FPoSOtqJeVdDSD0wZU4etKeGDe2689BN/xoIFTBuxzmUez44eKARJ7GOR8Ha9/iu2x22 eAaAj6yo70x3jgogBiTBp+YS9EOGKDovedN0E4pjG/dayjzmmEdjNT+JXt+pvHkg1DSm MACzrPG0GzDImt0PZodQruFrlMkF27IEvC3nYhQDR50woBV00oZE46SP2zoUSjrZNYAs ac6Q== X-Gm-Message-State: AOAM532va6Fushxcap+Dm2ZszMgkeprDOL/KBZtXbswjygYVniLvTXq9 qjvU5iEN86W4CHsmmlthUfV5MtdT X-Google-Smtp-Source: ABdhPJxrko2JuIkIK9fp3tm6TzjLm+mdGWCNkbIfuu+G8KUB1wB2eKepLK30ci0IuwB38amwnynH8Q== X-Received: by 2002:a17:906:95d6:: with SMTP id n22mr30896109ejy.138.1593113301162; Thu, 25 Jun 2020 12:28:21 -0700 (PDT) Original-Received: from [192.168.0.3] ([66.205.73.129]) by smtp.googlemail.com with ESMTPSA id a2sm7905796ejg.76.2020.06.25.12.28.19 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 25 Jun 2020 12:28:20 -0700 (PDT) In-Reply-To: <20200625191359.GD10342@ACM> Content-Language: en-US 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" Xref: news.gmane.io gmane.emacs.bugs:182390 Archived-At: On 25.06.2020 22:13, Alan Mackenzie wrote: >> That's unfortunate. > Indeed. Let's assume that keeping it working is a requirement here. Still, buffers that user mixed modes are usually not so big as some of the files we have in src/*.c. So even forgoing caching might result in a satisfying user experience 98% of the time. >> Guess the only thing that remains for me here is to express a wish for a >> syntax-ppss based design here. > >> Because mmm-mode knows how to deal with major modes based on it, as a group. > > How about enhancing mmm-mode to handle any major mode, rather than a > restricted subset? I don't know how. before-change-functions don't make it easy. >> It does not pick up each and every hook. > >> If it did, though, it would only call your before-change-functions >> inside js-mode regions, but it would have ignored them in HTML and CSS >> regions. Which doesn't appear to be what you want anyway. > > Then why not do in mmm-mode what I'm doing in CC Mode, mhtml-mode and > js-mode, i.e. add ad hoc code to handle precisely the case of js-mode? That would be something every user that configures a submode class using js-mode have to be aware of. That's not easy to document, or even if we made sure it's documented, to be sure that users read it. >>> There's no problem with before/after-change-functions. They're the >>> canonical way to react to buffer changes. > >> They're not very manageable, from mmm's point of view. And like the >> current example shows, it's not obvious what to do with such hooks >> outside of submode regions of major modes that added them. > > Like I said earlier on in the thread, making several major modes in a > buffer work is problematic in Emacs, and we really want better support > from the C core for it. Here we seem to want "global" and "mode-local" > before-change-functionses. These do seem to be the options: some C core support (though I'm not clear on the particulars of the proposed design), or switching from ad-hoc caches to syntax-propertize-function and and associated syntax-ppss cache.