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.devel Subject: Re: How to add pseudo vector types Date: Mon, 26 Jul 2021 21:55:41 +0300 Message-ID: <83pmv4vr9u.fsf@gnu.org> References: <83h7gw6pyj.fsf@gnu.org> <83y2a764oy.fsf@gnu.org> <83v95b60fn.fsf@gnu.org> <00DD5BFE-D14E-449A-9319-E7B725DEBFB3@gmail.com> <83r1fz5xr9.fsf@gnu.org> <1AAB1BCC-362B-4249-B785-4E0530E15C60@gmail.com> <83czri67h0.fsf@gnu.org> <46BBFF88-76C3-4818-8805-5437409BEA93@gmail.com> <83wnpq46uk.fsf@gnu.org> <533BD53B-4E85-4E9E-B46A-346A5BBAD0F5@gmail.com> <258CB68D-1CC1-42C8-BDCD-2A8A8099B783@gmail.com> <1a776770-50b7-93cd-6591-c9a5b3a56eb8@gmail.com> <8335s64v10.fsf@gnu.org> <5380C92B-6C15-4490-A1E0-1C3132DBB16A@gmail.com> <83k0li2shw.fsf@gnu.org> <86wnpg82v3.fsf@stephe-leake.org> <83lf5wyn0z.fsf@gnu.org> <86pmv66yqg.fsf@stephe-leake.org> <83a6maw705.fsf@gnu.org> <83r1fluikh.fsf@gnu.org> <88007ACB-31E5-440F-876D-9F43C8EE02CC@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25081"; mail-complaints-to="usenet@ciao.gmane.io" Cc: cpitclaudel@gmail.com, stephen_leake@stephe-leake.org, monnier@iro.umontreal.ca, emacs-devel@gnu.org To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Jul 26 20:56:51 2021 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 1m85mU-0006GX-OL for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Jul 2021 20:56:50 +0200 Original-Received: from localhost ([::1]:58090 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m85mT-0002Ep-RM for ged-emacs-devel@m.gmane-mx.org; Mon, 26 Jul 2021 14:56:49 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38454) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m85lX-0001Zm-Md for emacs-devel@gnu.org; Mon, 26 Jul 2021 14:55:51 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:51410) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m85lW-0000Bj-Nq; Mon, 26 Jul 2021 14:55:50 -0400 Original-Received: from 84.94.185.95.cable.012.net.il ([84.94.185.95]:3801 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 1m85lW-0000xz-BX; Mon, 26 Jul 2021 14:55:50 -0400 In-Reply-To: <88007ACB-31E5-440F-876D-9F43C8EE02CC@gmail.com> (message from Yuan Fu on Mon, 26 Jul 2021 13:09:13 -0400) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:271658 Archived-At: > From: Yuan Fu > Date: Mon, 26 Jul 2021 13:09:13 -0400 > Cc: Stephen Leake , > cpitclaudel@gmail.com, > monnier@iro.umontreal.ca, > emacs-devel@gnu.org > > > Which complexity does it add? You just compare with BEGV_BYTE instead > > of BEG_BYTE etc. > > We need to “delete” the hidden text and “re-insert” when we widen the buffer. I’ll try to make it a no-op as long as we remember to widen before calling tree-sitter to parse anything. If some parser needs access to the whole buffer, its caller should widen the buffer before calling the parser. IOW, the control on which part of the buffer is visible to the parser should be on the level of the caller of the parser, not at the level of the function which accesses buffer text. > > If we let TS look where it wants, we will lose the ability to restrict > > it to a certain part of the buffer text. This is needed at least for > > some specialized modes, and is generally desirable, as it gives Lisp > > programs an easy way to impose such restrictions whenever they need. > > Tree-sitter lets you set ranges for a parser to limit it self within, in order to support multi-language files. That's okay, but why would we want to expose this to Lisp as the means to restrict the accessible portion, when we already have such a means?