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.bugs Subject: bug#41531: 27.0.91; Better handle asynchronous eldoc backends Date: Sat, 04 Jul 2020 10:45:07 +0300 Message-ID: <83k0zjvi4c.fsf@gnu.org> References: <875zckuet9.fsf@gmail.com> <87sgecssch.fsf@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="39317"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 41531@debbugs.gnu.org, monnier@iro.umontreal.ca, andreyk.mad@gmail.com, dgutov@yandex.ru To: =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jul 04 09:46:12 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1jrcsE-000A82-Rv for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 04 Jul 2020 09:46:10 +0200 Original-Received: from localhost ([::1]:44768 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jrcsD-0001QW-DC for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 04 Jul 2020 03:46:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:46412) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jrcs6-0001QJ-Bu for bug-gnu-emacs@gnu.org; Sat, 04 Jul 2020 03:46:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46442) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jrcs6-0000N1-2t for bug-gnu-emacs@gnu.org; Sat, 04 Jul 2020 03:46:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jrcs5-0000sP-VI for bug-gnu-emacs@gnu.org; Sat, 04 Jul 2020 03:46:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 04 Jul 2020 07:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41531 X-GNU-PR-Package: emacs Original-Received: via spool by 41531-submit@debbugs.gnu.org id=B41531.15938487213312 (code B ref 41531); Sat, 04 Jul 2020 07:46:01 +0000 Original-Received: (at 41531) by debbugs.gnu.org; 4 Jul 2020 07:45:21 +0000 Original-Received: from localhost ([127.0.0.1]:57988 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jrcrR-0000rM-1M for submit@debbugs.gnu.org; Sat, 04 Jul 2020 03:45:21 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jrcrN-0000r6-Mb for 41531@debbugs.gnu.org; Sat, 04 Jul 2020 03:45:19 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:59655) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jrcrF-00009f-Nm; Sat, 04 Jul 2020 03:45:10 -0400 Original-Received: from [176.228.60.248] (port=1618 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jrcrC-0002ah-OP; Sat, 04 Jul 2020 03:45:08 -0400 In-Reply-To: <87sgecssch.fsf@gmail.com> (message from =?UTF-8?Q?Jo=C3=A3o_?= =?UTF-8?Q?T=C3=A1vora?= on Tue, 30 Jun 2020 12:31:10 +0100) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:182679 Archived-At: > From: João Távora > Date: Tue, 30 Jun 2020 12:31:10 +0100 > Cc: Stefan Monnier , andreyk.mad@gmail.com, > Dmitry Gutov > > The work that started with this discussion is now mostly complete. It > has been sitting in the scratch/eldoc-async branch of the Savannah repo > for a while, but I've been very busy and didn't have time to annouce it. Thanks. > Anyway I think my efforts are ready to push to master. I'll do so soon > unless someone raises a serious problem about it. Not a serious problem, but some comments: > -(defun eldoc-message (&optional string) > +(make-obsolete > + 'eldoc-message "use `eldoc-documentation-functions' instead." "1.1.0") Isn't the version part of the obsolete message supposed to tell the version of Emacs? The change to the number of arguments of the functions in the eldoc-documentation-functions hook is backward-incompatible, isn't it? I see you've changed the relevant functions in our sources, but what about 3rd-party packages? Also, the doc string of this hook needs clarification regarding the arguments: it first says that CALLBACK is the only mandatory argument to the hook functions, but then, out of the blue, appear additional arguments DOCSTRING and a list of key-value pairs. Confusing. The doc strings have some words in UK English spelling "(e.g., "honour"), please fix that. Also, please make sure comments all start with a capital letter, end with a period, and comprise full English sentences. The doc string of eldoc-documentation-compose doesn't say a word about the function's argument. In the doc string of eldoc-documentation-strategy, you use the phrase "queries the special hook for all functions that produce doc strings" to mean, AFAIU, that the specified functions in the hook-variable list are called. IMO, this wording could be confusing; suggest to use this instead: `eldoc-documentation-compose': calls all the functions in the hook, and displays all of the resulting doc strings ... This doc string doesn't explain the use of the timer, it explains the reason for its existence. It should also describe the use: > +(defvar eldoc--enthusiasm-curbing-timer nil > + "Timer used by `eldoc-documentation-enthusiast' to avoid blinking.") Last, but not least: the "async" part of the branch's name hints on some advanced and extremely useful functionality that these changes are supposed to allow, but I see no mention of that in NEWS and in the manual bits. What did I miss?