From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#13250: 24.3.50; Add a way to show pre-highlighted candidates in completions buffer Date: Fri, 21 Dec 2012 23:42:19 +0400 Message-ID: <877gobgpk4.fsf@yandex.ru> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1356119039 4459 80.91.229.3 (21 Dec 2012 19:43:59 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 21 Dec 2012 19:43:59 +0000 (UTC) To: 13250@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Dec 21 20:44:14 2012 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 1Tm8Vx-0002Gt-OM for geb-bug-gnu-emacs@m.gmane.org; Fri, 21 Dec 2012 20:44:13 +0100 Original-Received: from localhost ([::1]:50908 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8Vk-0005Ea-1Z for geb-bug-gnu-emacs@m.gmane.org; Fri, 21 Dec 2012 14:44:00 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:44867) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8Ve-0005EI-4u for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:43:57 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tm8VZ-0000Tc-4l for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:43:54 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:44354) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8VZ-0000TY-0I for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:43:49 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1Tm8Vn-00055c-6X for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:44:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 21 Dec 2012 19:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13250 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.135611899119480 (code B ref -1); Fri, 21 Dec 2012 19:44:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 21 Dec 2012 19:43:11 +0000 Original-Received: from localhost ([127.0.0.1]:54605 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tm8Uw-000548-HI for submit@debbugs.gnu.org; Fri, 21 Dec 2012 14:43:10 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:33374) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1Tm8Ut-000541-Tf for submit@debbugs.gnu.org; Fri, 21 Dec 2012 14:43:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tm8UX-0000ME-Ck for submit@debbugs.gnu.org; Fri, 21 Dec 2012 14:42:52 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:60393) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8UX-0000Ly-9D for submit@debbugs.gnu.org; Fri, 21 Dec 2012 14:42:45 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:44727) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8UO-0004zx-95 for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:42:45 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Tm8UI-0000Ir-DH for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:42:36 -0500 Original-Received: from mail-la0-f51.google.com ([209.85.215.51]:54955) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Tm8UI-0000Ih-0B for bug-gnu-emacs@gnu.org; Fri, 21 Dec 2012 14:42:30 -0500 Original-Received: by mail-la0-f51.google.com with SMTP id e4so5743829lag.10 for ; Fri, 21 Dec 2012 11:42:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:sender:from:to:subject:date:message-id:mime-version :content-type; bh=FFtICzqijirluatw7YiCPk/bkPpiK7mMdxRopeeF/gI=; b=f+g4Ik38XrFXLlo0v0ENsb7DcICZK2uDwwLzCQsYL7OEq1e8gzfRt1Ej/U/JpBK+5c 6PofuATzWSZxJ07bmrmRLKrORBF81jBC8sJ0BZTks6Svpn+7hc9Xbfym7yGxyuqcHrkw b1zxrn5RaCNhUX4OZkPkWOC2SFhCrS7BaduW88h5FLAUiU6u3rFEep1s61e/b+6dF/lo VXIu/I2d3jYWB3ZmclnaEtRl9G9y1zBV5t1VFp68i+LJYf9aI240UlYipuFYG9G4N0EC XqU6MToYCn5N7xLORgXi3VecrNRhqpdBzT+sEZbqBOcOkq/fpEUBu42Cy9qIuJbsqhGn z+kA== X-Received: by 10.112.101.232 with SMTP id fj8mr5389483lbb.83.1356118948479; Fri, 21 Dec 2012 11:42:28 -0800 (PST) Original-Received: from vbx ([178.252.98.87]) by mx.google.com with ESMTPS id ne2sm4948694lab.10.2012.12.21.11.42.25 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 21 Dec 2012 11:42:26 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.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:68870 Archived-At: --=-=-= Content-Type: text/plain When I return the list of candidates from the "completion table" function, I'd like to be able the specify the base (not user-defined) highlighting, so that the actual candidate text looks more visible (as opposed to the annotations) and easy to scan. In my case, the candidates are method names and the annotations are argument lists, so using font-lock-function-name-face is natural. But if I propertize the list with 'font-lock-face properties, both the "common" part and the "first difference" are still colored black, because the completion code uses the hardcoded faces for them, one of which inherits from `default', another from `bold'. Screenshot attached. Can we change this so that those faces override the face attributes only if they've been explicitly customized (as opposed to inherited from `default')? Is it possible to do that in a backwards-compatible way? With overlays, maybe? --=-=-= Content-Type: image/png Content-Disposition: attachment; filename=completion-faces.png Content-Transfer-Encoding: base64 Content-Description: completion buffer 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 --=-=-=--