From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Vegard =?UTF-8?Q?=C3=98ye?= Newsgroups: gmane.emacs.bugs Subject: bug#7025: Viper's `viper-deflocalvar' macro doesn't indent properly Date: Sun, 12 Sep 2010 15:46:46 +0200 Message-ID: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1284306894 15719 80.91.229.12 (12 Sep 2010 15:54:54 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 12 Sep 2010 15:54:54 +0000 (UTC) To: 7025@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Sep 12 17:54:52 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1OuotH-0000Hx-SA for geb-bug-gnu-emacs@m.gmane.org; Sun, 12 Sep 2010 17:54:52 +0200 Original-Received: from localhost ([127.0.0.1]:48367 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OuotG-0005Fn-VR for geb-bug-gnu-emacs@m.gmane.org; Sun, 12 Sep 2010 11:54:51 -0400 Original-Received: from [140.186.70.92] (port=59584 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OuosZ-0004r6-Oe for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 11:54:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OuofI-0001jE-P1 for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 11:40:25 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:49915) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OuofI-0001j8-Nf for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 11:40:24 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1Ouod1-0000tA-Is; Sun, 12 Sep 2010 11:38:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Vegard =?UTF-8?Q?=C3=98ye?= Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Sep 2010 15:38:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 7025 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.12843058373394 (code B ref -1); Sun, 12 Sep 2010 15:38:03 +0000 Original-Received: (at submit) by debbugs.gnu.org; 12 Sep 2010 15:37:17 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OuocF-0000sc-K4 for submit@debbugs.gnu.org; Sun, 12 Sep 2010 11:37:16 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OumrQ-00006W-SC for submit@debbugs.gnu.org; Sun, 12 Sep 2010 09:44:49 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OumtV-0001iG-1P for submit@debbugs.gnu.org; Sun, 12 Sep 2010 09:46:58 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:53305) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OumtU-0001iC-V7 for submit@debbugs.gnu.org; Sun, 12 Sep 2010 09:46:57 -0400 Original-Received: from [140.186.70.92] (port=58612 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OumtT-0007cD-Ou for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 09:46:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OumtS-0001hh-3u for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 09:46:55 -0400 Original-Received: from blu0-omc1-s14.blu0.hotmail.com ([65.55.116.25]:26394) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OumtS-0001hS-2F for bug-gnu-emacs@gnu.org; Sun, 12 Sep 2010 09:46:54 -0400 Original-Received: from BLU0-SMTP170 ([65.55.116.7]) by blu0-omc1-s14.blu0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Sun, 12 Sep 2010 06:46:52 -0700 X-Originating-IP: [80.212.184.210] X-Originating-Email: [vegard_oye@hotmail.com] Original-Received: from [192.168.1.149] ([80.212.184.210]) by BLU0-SMTP170.phx.gbl over TLS secured channel with Microsoft SMTPSVC(6.0.3790.4675); Sun, 12 Sep 2010 06:46:50 -0700 User-Agent: Mozilla/5.0 (X11; U; Linux i686; nb-NO; rv:1.9.2.8) Gecko/20100802 Thunderbird/3.1.2 X-OriginalArrivalTime: 12 Sep 2010 13:46:50.0871 (UTC) FILETIME=[F3BCA870:01CB5280] X-detected-operating-system: by eggs.gnu.org: Windows 2000 SP4, XP SP1+ X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-Mailman-Approved-At: Sun, 12 Sep 2010 11:37:11 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 12 Sep 2010 11:38:03 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:40110 Archived-At: The `viper-deflocalvar' macro in viper-init.el is used for defining buffer-local variables. However, it doesn't indent properly: (viper-deflocalvar foo nil "Docstring") The following patch adds a `declare' statement to fix the indentation: (viper-deflocalvar foo nil "Docstring") `viper-loop' suffers from the same problem, and is also fixed by the patch. Furthermore, the patch adds syntax highlighting for `viper-deflocalvar' and `viper-loop', so that they blend in with `defvar' and `loop'. Vegard --- viper-init.el 2010-09-12 15:22:42.000000000 +0200 +++ viper-init-patched.el 2010-09-12 15:32:35.000000000 +0200 @@ -95,6 +95,10 @@ ;;; Macros (defmacro viper-deflocalvar (var default-value &optional documentation) + "Define VAR as a buffer-local variable. +DEFAULT-VALUE is the default value and DOCUMENTATION is the +docstring. The variable becomes buffer-local whenever set." + (declare (indent defun)) `(progn (defvar ,var ,default-value ,(format "%s\n\(buffer local\)" documentation)) @@ -102,11 +106,20 @@ ;; (viper-loop COUNT BODY) Execute BODY COUNT times. (defmacro viper-loop (count &rest body) + (declare (indent defun)) `(let ((count ,count)) (while (> count 0) ,@body (setq count (1- count))))) +(when (fboundp 'font-lock-add-keywords) + (font-lock-add-keywords + 'emacs-lisp-mode + '(("(\\(viper-deflocalvar\\)\\>[ \f\t\n\r\v]*\\(\\sw+\\)?" + (1 font-lock-keyword-face) + (2 font-lock-variable-name-face nil t)) + ("(\\(viper-loop\\)\\>" 1 font-lock-keyword-face)))) + (defmacro viper-buffer-live-p (buf) `(and ,buf (get-buffer ,buf) (buffer-name (get-buffer ,buf))))