From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: "Garreau\, Alexandre" Newsgroups: gmane.emacs.devel Subject: Re: emacs-lisp-mode highlights incorrectly =?utf-8?Q?defmacros=2F?= =?utf-8?Q?defuns=E2=80=99?= arglists Date: Tue, 16 Oct 2018 21:22:25 +0200 Message-ID: <87va61r91q.fsf@portable.galex-713.eu> References: <87in21u6gu.fsf@portable.galex-713.eu> <20181016183551.GB5722@ACM> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1539717638 12849 195.159.176.226 (16 Oct 2018 19:20:38 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 16 Oct 2018 19:20:38 +0000 (UTC) User-Agent: Gnus (5.13), GNU Emacs 25.1.1 (i686-pc-linux-gnu) Cc: emacs-devel@gnu.org To: Alan Mackenzie Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Oct 16 21:20:34 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gCUtM-0003Dr-Qh for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2018 21:20:32 +0200 Original-Received: from localhost ([::1]:59922 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCUvS-0002Pc-W2 for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2018 15:22:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:33140) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCUvJ-0002NJ-0e for emacs-devel@gnu.org; Tue, 16 Oct 2018 15:22:34 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gCUvH-0004L9-89 for emacs-devel@gnu.org; Tue, 16 Oct 2018 15:22:32 -0400 Original-Received: from portable.galex-713.eu ([2a00:5884:8305::1]:41262) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gCUvF-0004Gm-GI for emacs-devel@gnu.org; Tue, 16 Oct 2018 15:22:30 -0400 Original-Received: from localhost ([::1] helo=portable.galex-713.eu) by portable.galex-713.eu with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1gCUvB-000168-Qw; Tue, 16 Oct 2018 21:22:25 +0200 X-GPG-FINGERPRINT: E109 9988 4197 D7CB B0BC 5C23 8DEB 24BA 867D 3F7F X-Accept-Language: fr, en, it, eo In-Reply-To: <20181016183551.GB5722@ACM> (Alan Mackenzie's message of "Tue, 16 Oct 2018 18:35:51 +0000") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:5884:8305::1 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:230421 Archived-At: On 2018-10-16 at 18:35, Alan Mackenzie wrote: > On Tue, Oct 16, 2018 at 19:49:53 +0200, Garreau, Alexandre wrote: >> At least *someone* must have *seen* this: >> #+BEGIN_SRC elisp >> (defmacro unless (cond &rest body) >> "If COND yields nil, do BODY, else return nil. >> When COND yields nil, eval BODY forms sequentially and return >> value of last one, or nil if there are none. > >> \(fn COND BODY...)" >> (declare (indent 1) (debug t)) >> (cons 'if (cons cond (cons nil body)))) >> #+END_SRC > > You surely are conscious of the fact that `cond' is a special form? I am, yet from the time it=E2=80=99s used as either a variable, or a macro = arg, normally that shouldn=E2=80=99t cause any issue=E2=80=A6 otherwise what=E2= =80=99s the point of a lisp-2, with 2 whole different namespaces? > To use it as an argument name is asking for trouble, surely. Still Emacs seems to use it extensively to mean =E2=80=9Cform evaluating to= a boolean=E2=80=9D (different from =E2=80=9Ctest=E2=80=9D which is a function= returning a boolean), this nicely and understandably have the same as the most primitive, old and handy special form taking those as arguments. This exemple was an excerpt of subr.el. And I noticed there that there were many others. As a probably quite old convention, this must trace back to long ago so it must be disseminated all around emacs=E2=80=99 source code. Do you have any so better name to suggest for replacing the symbol =E2=80=9Ccond=E2=80=9D used as a variable everywhere in emacs=E2=80=99 sour= ce code? because otherwise I feel like it=E2=80=99s the fontification who=E2=80=99s wrong he= re. > The font locking in emacs-lisp-mode appears not to be too > sophisticated. But it is fast. > >> Wouldn=E2=80=99t there be a way to turn off these highlightings in such >> places of known old and fixed macro calls? > > There might well be, but it would slow fontification down, somewhat. > I suspect that changing "cond" to something less contentious will get > the result you want. That much? Emacs source code using =E2=80=9Ccond=E2=80=9D extensively, I=E2= =80=99ve thought this would be a must-have feature. This always bugged me and I just re-saw it so I thought about talking about it.