From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michal Nazarewicz Newsgroups: gmane.emacs.bugs Subject: bug#19338: [PATCH 1/3] eldoc: use default eldoc function if local one gives no results Date: Wed, 10 Dec 2014 18:49:43 +0100 Message-ID: <1418233785-18020-1-git-send-email-mpn@google.com> References: <1418232280-16915-1-git-send-email-mpn@google.com> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1418234063 5910 80.91.229.3 (10 Dec 2014 17:54:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 10 Dec 2014 17:54:23 +0000 (UTC) To: 19338@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Dec 10 18:54:16 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XylSq-0000wq-EU for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Dec 2014 18:54:16 +0100 Original-Received: from localhost ([::1]:47120 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XylSq-0003K0-1P for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Dec 2014 12:54:16 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:56863) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XylSh-0003HT-LW for bug-gnu-emacs@gnu.org; Wed, 10 Dec 2014 12:54:12 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XylSc-0005SC-EV for bug-gnu-emacs@gnu.org; Wed, 10 Dec 2014 12:54:07 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:60803) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XylSc-0005S7-BF for bug-gnu-emacs@gnu.org; Wed, 10 Dec 2014 12:54:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XylSc-0003BY-43 for bug-gnu-emacs@gnu.org; Wed, 10 Dec 2014 12:54:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <1418232280-16915-1-git-send-email-mpn@google.com> Resent-From: Michal Nazarewicz Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 10 Dec 2014 17:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 19338 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 19338-submit@debbugs.gnu.org id=B19338.141823401712192 (code B ref 19338); Wed, 10 Dec 2014 17:54:02 +0000 Original-Received: (at 19338) by debbugs.gnu.org; 10 Dec 2014 17:53:37 +0000 Original-Received: from localhost ([127.0.0.1]:41932 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XylSC-0003AY-RT for submit@debbugs.gnu.org; Wed, 10 Dec 2014 12:53:37 -0500 Original-Received: from mail-wg0-f51.google.com ([74.125.82.51]:39422) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XylOc-00033e-JM for 19338@debbugs.gnu.org; Wed, 10 Dec 2014 12:49:55 -0500 Original-Received: by mail-wg0-f51.google.com with SMTP id x12so4318739wgg.10 for <19338@debbugs.gnu.org>; Wed, 10 Dec 2014 09:49:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=from:to:subject:date:message-id; bh=iMQzmyyvQy3BaBE1wBMhfsZfdCsDa2N6AFryJGPs+vE=; b=gjzoUsqNjuxbHJomk4vccyzx6x5bbXi8l2/hYf5qu42+HFX5PUGqRhzFV2nu++4RBW VPSfS2Q7g2ya0oY+po6Ixgdq8w8S5rM8qrS6LYcDc0z2Ro0K51rAKZkH7iin7gVJ4ESV JHrnynqq6M5gQuei1XGg4pvBJyWKrs9ZFsWm2x/+m0jNYPw259wokB7I0jiOcqyrzGRJ 5eG8gI+n9T6MDmepWmz/gy0M3PPYqc+nFHqClTLECxz8CiqacJSBRMh9glNcCgPDQbtj sQ9Dy4Fy6uYUq/lN5VpWq2MRPc6JkEC1lKRny6+RnQZtVgMhETGfYmNyXlOjdsRXzNxU uDJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=iMQzmyyvQy3BaBE1wBMhfsZfdCsDa2N6AFryJGPs+vE=; b=jAevQAlwnGzIBLzspXXXaXnXyCQAc+HsiVac6JEa4dmkfl64PSLkBl70cR442zsDaU f8W6eB4HdAXcyCV+ZqDosoZTI7A93Re6YR5R8WMLieaNYY0yC+CTdAmlkB1jrrC4dtY/ Rn2WgHHTxTZ3NQYnFnpeLhr2VjFsXAwmi89XUVwPL5eEOJi8CqUostMJXVFYkmTVdLxh GhuWEEmA1qO5CsrnQaYNddPl+IrRTSJwHHzuueJk08AV9KyieRNNjVXXLR/+Xcv3BGA6 18o8DTGdONxZYkjfITVZgZ0qCb8sB+RPXMjYPXgdIKly2aXTcTrhjVig2GKrDErkHSUO izZg== X-Gm-Message-State: ALoCoQmDYhKeUMg2loa9uufJ5b78GO9eBjBS6VupYHPQaMqFtA5Ytng7eRZOm2gje09SCvqbcloJ X-Received: by 10.194.156.201 with SMTP id wg9mr8728845wjb.59.1418233788794; Wed, 10 Dec 2014 09:49:48 -0800 (PST) Original-Received: from mpn-glaptop.corp.google.com ([2620:0:105f:310:381f:eb80:e0ce:71dc]) by mx.google.com with ESMTPSA id ly9sm6744297wjb.24.2014.12.10.09.49.47 for <19338@debbugs.gnu.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 10 Dec 2014 09:49:47 -0800 (PST) X-Mailer: git-send-email 2.2.0.rc0.207.ga3a616c X-Mailman-Approved-At: Wed, 10 Dec 2014 12:53:34 -0500 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 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.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:97155 Archived-At: From: Michal Nazarewicz * lisp/emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): If local `eldoc-documentation-function' returns no docstring and the variable has a non-nil default value, try it as well. This allows setting up a global documentation function which will still be used if given major mode has its own. --- etc/NEWS | 6 ++++-- lisp/emacs-lisp/eldoc.el | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 407df82..50338cf 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -199,8 +199,10 @@ typing RET. result of the calculation into the current buffer. ** ElDoc -*** New minor mode global-eldoc-mode -*** eldoc-documentation-function now defaults to nil +*** New minor mode `global-eldoc-mode' +*** `eldoc-documentation-function' now defaults to nil +*** Default value of `eldoc-documentation-function now' is consulted if +local function does not return any documentation. ** eww diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 6dddf5b..06ee164 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -345,7 +345,13 @@ This variable is expected to be set buffer-locally by modes that support ElDoc." (when eldoc-last-message (eldoc-message nil) nil)) - (eldoc-message (funcall eldoc-documentation-function))))) + (eldoc-message + (or (funcall eldoc-documentation-function) + ;; If local documentation function did not return anything, try + ;; global one. + (when (local-variable-p 'eldoc-documentation-function) + (let ((func (default-value 'eldoc-documentation-function))) + (when func (funcall func))))))))) ;; When point is in a sexp, the function args are not reprinted in the echo -- 2.2.0.rc0.207.ga3a616c