From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jonas Bernoulli Newsgroups: gmane.emacs.bugs Subject: bug#13156: dedicated face for parentheses in lisp modes Date: Wed, 12 Dec 2012 13:19:07 +0100 Message-ID: <87ip87xy2s.fsf@bernoul.li> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1355314833 18327 80.91.229.3 (12 Dec 2012 12:20:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Dec 2012 12:20:33 +0000 (UTC) To: 13156@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Dec 12 13:20:47 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 1TilIt-0005fb-8J for geb-bug-gnu-emacs@m.gmane.org; Wed, 12 Dec 2012 13:20:47 +0100 Original-Received: from localhost ([::1]:42332 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilIg-0002mf-7H for geb-bug-gnu-emacs@m.gmane.org; Wed, 12 Dec 2012 07:20:34 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:42641) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilIU-0002mO-OC for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:20:32 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TilIO-0006L4-W4 for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:20:22 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:56325) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilIO-0006Kz-Rg for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:20:16 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TilJ8-0007e7-US for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:21:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jonas Bernoulli Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 12 Dec 2012 12:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 13156 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.135531482229342 (code B ref -1); Wed, 12 Dec 2012 12:21:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Dec 2012 12:20:22 +0000 Original-Received: from localhost ([127.0.0.1]:38343 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TilIT-0007dC-Vf for submit@debbugs.gnu.org; Wed, 12 Dec 2012 07:20:22 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:59303) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TilIS-0007d6-MR for submit@debbugs.gnu.org; Wed, 12 Dec 2012 07:20:21 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TilHa-0005xA-V0 for submit@debbugs.gnu.org; Wed, 12 Dec 2012 07:19:34 -0500 Original-Received: from lists.gnu.org ([208.118.235.17]:51843) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilHa-0005x5-Rp for submit@debbugs.gnu.org; Wed, 12 Dec 2012 07:19:26 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:42391) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilHT-0002at-KD for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:19:26 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TilHL-0005uJ-TZ for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:19:19 -0500 Original-Received: from mail-ea0-f169.google.com ([209.85.215.169]:37094) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TilHL-0005tt-OT for bug-gnu-emacs@gnu.org; Wed, 12 Dec 2012 07:19:11 -0500 Original-Received: by mail-ea0-f169.google.com with SMTP id a12so210916eaa.0 for ; Wed, 12 Dec 2012 04:19:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:user-agent:date:message-id:mime-version :content-type; bh=9ks5Mll7T2ZMH7wQ2roDRWX5GTogyM452st58XyG5pA=; b=zEy01+//E186yYOVgK1vEQcyAFudmnQvHkTRqRbQ61VTAS6mbaGe2/skkCvXSCcQf0 CfBCj1cJ9ElcEt9U7aBJIoYy4ZTwLLPkOrcHoYfeS0u8z9AzYvKiDXNzPRFghYMM9inx UWbL95rrv6HzKMfA/PMQz3EWUITajfh+8TFgQmLT8W/W8nqdi4KgnUFjViH4ZslcrLmT gVKNDiOEtZw5LSiv7qjfpx8KnuJs2QAKP/UA0Wzosvyu/1mDtN18B/gTNtJH1tTcOnCE tftg2DkSnpPLVmHgsDLmYdlBA+fkUyS0+NkHMYv4B8yRO4frUJm4SWWz+3WVFXAsPRJX akuA== Original-Received: by 10.14.184.134 with SMTP id s6mr2357845eem.43.1355314750314; Wed, 12 Dec 2012 04:19:10 -0800 (PST) Original-Received: from lem (217-162-182-154.dynamic.hispeed.ch. [217.162.182.154]) by mx.google.com with ESMTPS id b49sm55651061eem.16.2012.12.12.04.19.08 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 12 Dec 2012 04:19:08 -0800 (PST) User-agent: mu4e 0.9.9.5-dev4; emacs 24.3.50.1 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:68384 Archived-At: --=-=-= Content-Type: text/plain Hello Could you please add a `paren-face' that could be used in lisp modes (and possibly others) to dim (or highlight) parentheses. I am currently using the attached library to do this but think it would make sense if this functionality was built-in. Being very simple `parenface.el' just unconditionally adds an additional keyword to `[lisp|scheme]-font-lock-keywords' when loaded. I see two ways of implementing this as part of Emacs. 1. Add the keyword to `[lisp|scheme]-font-lock-keywords-2' directly and let `paren-face' inherit from `default'. Users who actually want parens to be dimmed or highlight can then customize the former. 2. Define a local minor mode that adds the additional keywords. I would prefer (1) but maybe that is not an option because it might negatively affects font-lock's performance. If this has to be a mode then I am happy to write it. I haven't done so yet because `parenface.el' works fine for me and because I would actually prefer (1). Thanks for considering, Jonas --=-=-= Content-Type: application/emacs-lisp Content-Disposition: attachment; filename=parenface.el Content-Transfer-Encoding: quoted-printable ;;; parenface.el --- Provide a face for parens in lisp modes. ;; By Dave Pearson ;; $Revision: 1.1 $ ;; Add a paren-face to emacs and add support for it to the various lisp mod= es. ;; ;; Based on some code that Boris Schaefer posted ;; to comp.lang.scheme in message <87hf8g9nw5.fsf@qiwi.uncommon-sense.net>. (defvar paren-face 'paren-face) (defface paren-face '((((class color)) (:foreground "DimGray"))) "Face for displaying a paren." :group 'faces) (defmacro paren-face-add-support (keywords) "Generate a lambda expression for use in a hook." `(lambda () (let* ((regexp "(\\|)") (match (assoc regexp ,keywords))) (unless (eq (cdr match) paren-face) (setq ,keywords (append (list (cons regexp paren-face)) ,keywords))= )))) ;; Keep the compiler quiet. (eval-when-compile (defvar scheme-font-lock-keywords-2 nil) (defvar lisp-font-lock-keywords-2 nil)) (add-hook 'scheme-mode-hook (paren-face-add-support scheme-font-l= ock-keywords-2)) (add-hook 'lisp-mode-hook (paren-face-add-support lisp-font-loc= k-keywords-2)) (add-hook 'emacs-lisp-mode-hook (paren-face-add-support lisp-font-loc= k-keywords-2)) (add-hook 'lisp-interaction-mode-hook (paren-face-add-support lisp-font-loc= k-keywords-2)) (provide 'parenface) ;; parenface.el ends here --=-=-=--