From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Major modes using `widen' is a good, even essential, programming practice. Date: Sun, 07 Aug 2022 19:21:32 -0400 Message-ID: References: <6ae35c9306ade07b4c45@heytings.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25037"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Gregory Heytings , emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 08 01:22:56 2022 Return-path: Envelope-to: ged-emacs-devel@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 1oKpbj-0006LZ-Ny for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Aug 2022 01:22:55 +0200 Original-Received: from localhost ([::1]:33560 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oKpbi-0000zk-Qu for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Aug 2022 19:22:54 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35978) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKpaZ-00083N-PH for emacs-devel@gnu.org; Sun, 07 Aug 2022 19:21:43 -0400 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:1036) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKpaX-0006Ml-Az for emacs-devel@gnu.org; Sun, 07 Aug 2022 19:21:42 -0400 Original-Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 2D51A8076B; Sun, 7 Aug 2022 19:21:38 -0400 (EDT) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id B5BB480323; Sun, 7 Aug 2022 19:21:36 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1659914496; bh=mlGxBL5TghsXQ1yX5w8CN1OMg9cYqPrlAZJzQoWJ7WE=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=R6A12YRqJYY+xAdEq3SUDXbOqmvTz4iAz3UPT0syRnX0fLPVP2XLPhR+xrSXzrBko 9fr+Ojjq6Xer7KO1VN72qLCwcuqsmir3iwjeoemfTho8t/DSAyWVmMhDD3+D/kfrd2 +jB3evK+3UgQ/vK4akY0PoJKXyBScEsVNngJyzWu79XRZE5npPumvfsaIxaHr0SDhb lYs7EZ00ekzSPbWHDKQ9IYHFAdfipUZz9pw08ouxYWqnPBO9eJXvRYzBQe1iEUk9yt RQIpQysOVM38g9C7aKqpF1Kzmae8jyboS/Q0WnxEquhByiheGGskcVjDZmZTYPEIES YFmZjkAnURH5A== Original-Received: from milanesa (dyn.144-85-181-035.dsl.vtx.ch [144.85.181.35]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D9BEF1203D4; Sun, 7 Aug 2022 19:21:35 -0400 (EDT) In-Reply-To: (Alan Mackenzie's message of "Sun, 7 Aug 2022 14:13:36 +0000") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:293238 Archived-At: > Where, exactly are the terms of this supposed contract formulated? I'm not sure it's written anywhere. More specifically, for `jit-lock-functions`, the contract is not very constraining. For font-lock the contract is not still very explicit but is more constraining in that we expect major modes not to look before point-min or after point-max. For that reason font-lock normally widens the buffer before it does anything else (unless `font-lock-dont-widen` is set). > And which part of this supposed contract has CC Mode broken? It calls `widen` within its font-lock code. Eli Zaretskii [2022-08-07 17:20:52] wrote: > jit-lock calls the functions with two arguments, BEG and END, and > expects them to work only on that chunk of text. That is not the case: it expects the function to "fontify" *at least* from BEG to END, but is quite happy to let it fontify more (and the function can return a value indicating which portion was actually returned in that case). Furthermore, it's clear that fontification of BEG..END may need to look at text before BEG (and occasionally beyond END as well). Stefan