From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: How to add pseudo vector types Date: Thu, 29 Jul 2021 20:35:33 -0400 Message-ID: References: <83h7gw6pyj.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> <86fsw05lom.fsf@stephe-leake.org> <8A3823DD-5D5A-4A33-8EF9-93F05497CE4C@gmail.com> <864kcf5cmv.fsf_-_@stephe-leake.org> <18D745F5-DBB1-46CC-91D3-4ADAA9D37AB9@gmail.com> <834kcetmly.fsf@gnu.org> <831r7itjc8.fsf@gnu.org> <24808548-23F4-4068-877E-37C7190A02B0@gmail.com> Reply-To: rms@gnu.org Content-Type: text/plain; charset=Utf-8 Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="3779"; mail-complaints-to="usenet@ciao.gmane.io" Cc: eliz@gnu.org, emacs-devel@gnu.org, stephen_leake@stephe-leake.org, cpitclaudel@gmail.com, monnier@iro.umontreal.ca To: Yuan Fu Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jul 30 02:36:21 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 1m9GVh-0000m5-5n for ged-emacs-devel@m.gmane-mx.org; Fri, 30 Jul 2021 02:36:21 +0200 Original-Received: from localhost ([::1]:33364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m9GVf-0002QW-6C for ged-emacs-devel@m.gmane-mx.org; Thu, 29 Jul 2021 20:36:19 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:34208) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1m9GUw-0001g2-Jw for emacs-devel@gnu.org; Thu, 29 Jul 2021 20:35:34 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:55616) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1m9GUv-0001lF-9G; Thu, 29 Jul 2021 20:35:33 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.90_1) (envelope-from ) id 1m9GUv-0006h5-2y; Thu, 29 Jul 2021 20:35:33 -0400 In-Reply-To: <24808548-23F4-4068-877E-37C7190A02B0@gmail.com> (message from Yuan Fu on Wed, 28 Jul 2021 14:46:03 -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:271813 Archived-At: [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > s two options to convey this change to the tree-sitter parser: 1) > it does not, then tree-sitter still thinks the buffer is AA, > essentially the portion where tree-sitter sees is pushed forward > by one character, 2) it tells tree-sitter the user inserted a > character at the beginning, then tree-sitter thinks the buffer is > BAA. > Which option is correct depends on how does lisp later narrows: if > lisp narrows to AA, then option 1 is correct, if lisp narrows to > BAA, then option 2 is correct. But how do we know which option is > correct before lisp narrows? I suggest we create a way for the program to declare the purpose for each instance of narrowing. I know of two kinds of purposes for using narrowing. 1. To focus operations on syntactic entity in a buffer containing other things which are essentially unrelated. Let's call this "semantic" narrowing. For instance, when Rmail narrows the file buffer to just one message, that is semantic narrowing. Whatever is outside the buffer bounds is unrelated to parsing the current message. 2. To show just part of the text you're looking at. This is a display feature, usually temporary, and would be enabled or disabled by the user. Let's call it "display" narrowing. I don't think Emacs can tell heuristically which kind of narrowing a program is doing. I propose we create a way for Lisp programs to declare when they do semantic narrowing. They could specify markers for the beginning and end of that narrowing. Facilities for parsing the buffer should heed semantic narrowing but disregard display narrowing. Various kinds of semantic narrowing should be able to nest, and display narrowing should be able to nest inside semantic narrowings. Comments or critiques? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org)