From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] Re: cc-mode fontification feels random Date: Tue, 31 Aug 2021 21:17:12 +0000 Message-ID: References: <835yvmka50.fsf@gnu.org> <9377d9ec-a3e5-ceea-8a9a-523a420f13f7@dancol.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9466"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Daniel Colascione , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 31 23:18:46 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 1mLB9Z-0002Km-LN for ged-emacs-devel@m.gmane-mx.org; Tue, 31 Aug 2021 23:18:45 +0200 Original-Received: from localhost ([::1]:34916 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mLB9Y-0002PV-IV for ged-emacs-devel@m.gmane-mx.org; Tue, 31 Aug 2021 17:18:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37770) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mLB8K-0001DO-EU for emacs-devel@gnu.org; Tue, 31 Aug 2021 17:17:28 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:47182 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1mLB8H-0006a9-RA for emacs-devel@gnu.org; Tue, 31 Aug 2021 17:17:28 -0400 Original-Received: (qmail 71708 invoked by uid 3782); 31 Aug 2021 21:17:12 -0000 Original-Received: from acm.muc.de (p4fe158c5.dip0.t-ipconnect.de [79.225.88.197]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Tue, 31 Aug 2021 23:17:12 +0200 Original-Received: (qmail 7515 invoked by uid 1000); 31 Aug 2021 21:17:12 -0000 Content-Disposition: inline In-Reply-To: X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.1; envelope-from=acm@muc.de; helo=mail.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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:273623 Archived-At: Hello, Stefan. On Tue, Aug 31, 2021 at 14:56:13 -0400, Stefan Monnier wrote: > > So, it seems I want something like stealth, but not quite. How about, > > say jit-lock-single-fontification - it would apply to individual buffers > > only, would scan through the buffer precisely once, and would do just > > enough 500-byte chunks at at time to take 0.05 seconds (configurable). > I still don't think it's a good use of resources: fontifying the whole > buffer is usually completely unnecessary because most of that buffer > will never be displayed, and because we can fontifying them fast enough > that doing it ahead of time won't save us enough time when we do display > those parts. It is the incorrectness of the display of some CC Mode types, rather than the speed of fontification which is the issue here. > [ Typical concrete problems show up when you visit a hundred files > (e.g. for a search&replace, or when loading your desktop.el) after which > your Emacs stays busy for a long time fontifying all those buffers. ] It may be busy, but it remains responsive, as in stealth fontification. Is this really a problem, as long as one's running on mains power, not a battery. > For my own use, the benefit of "correct" highlighting of types is not > worth any effort at all. I envisage this facility being enabled by a user option. > Maybe some users would enjoy the improved highlighting of your new > code, .... Daniel Colascione, the OP of this thread, most assuredly would. > .... but if so I think you'd be better off running an ad-hoc timer > that does nothing else than scan for type declarations (without doing > the rest of font-lock). It'll be faster and you won't need to care > about what jit-lock does. Thanks, that's a brilliant idea! It will be somewhat faster rather than much faster (because parsing declarations is what sucks up the time in CC Mode's fontification), but as you say, assuming most parts of most buffers never get displayed, it will be a net win. It will be more work to code up, though. I'm currently quite some way into hacking up jit-lock-single-fontification, so I'm going to get that working first to see how well it works. Then I'll hack up your idea, and confirm it works better. > Stefan -- Alan Mackenzie (Nuremberg, Germany).