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: What's the best (i.e. least bad) way to re-redisplay? Date: Mon, 23 Aug 2021 18:41:59 +0000 Message-ID: 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="647"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Aug 23 20:43:16 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 1mIEuh-000Ab2-Iu for ged-emacs-devel@m.gmane-mx.org; Mon, 23 Aug 2021 20:43:15 +0200 Original-Received: from localhost ([::1]:36072 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mIEug-0000dX-CH for ged-emacs-devel@m.gmane-mx.org; Mon, 23 Aug 2021 14:43:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44478) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mIEtr-0007Yv-Sf for emacs-devel@gnu.org; Mon, 23 Aug 2021 14:42:23 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:32582 helo=mail.muc.de) by eggs.gnu.org with smtp (Exim 4.90_1) (envelope-from ) id 1mIEtp-0003lG-UX for emacs-devel@gnu.org; Mon, 23 Aug 2021 14:42:23 -0400 Original-Received: (qmail 78338 invoked by uid 3782); 23 Aug 2021 18:42:00 -0000 Original-Received: from acm.muc.de (p4fe159f8.dip0.t-ipconnect.de [79.225.89.248]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 23 Aug 2021 20:41:59 +0200 Original-Received: (qmail 7012 invoked by uid 1000); 23 Aug 2021 18:41:59 -0000 Content-Disposition: inline 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:272884 Archived-At: Hello, Emacs. I'm currently thinking about issues raised in the thread "cc-mode fontification feels random" in June. I envisage a situation where an identifier is identified as a type during jit-lock fontification, and thus font-lock-type-face needs to be applied to all occurrences of this identifier. The problem is, there will be occurences in the foreground window before the one which triggered the fontification. Redisplay will already have passed this earlier buffer position. So I need to trigger another redisplay immediately after the current one. What is the least bad way of doing this? Currently, I'm thinking of something like the CC Mode fontification functions setting a flag, and a repeating timer function testing this flag every 0.025s, say, and triggering a redisplay if it's set. One problem is knowing whether or not redisplay is currently active. Is there a simple way to do this in Lisp? (I know there is in C.) I surely can't be the first person needing to do this sort of thing. Suggestions and comments, please, from the wise. :-) -- Alan Mackenzie (Nuremberg, Germany).