bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19217: 25.0.50; `C-M-x' (`eval-defun') on a `defface' that is not to


From: Alan Mackenzie
Subject: bug#19217: 25.0.50; `C-M-x' (`eval-defun') on a `defface' that is not top-level
Date: 29 Nov 2014 19:10:23 -0000
User-agent: tin/2.2.0-20131224 ("Lochindaal") (UNIX) (FreeBSD/8.4-RELEASE (amd64))

Hi, Drew.

In article <mailman.14952.1417284925.1147.bug-gnu-emacs@gnu.org> you wrote:
> Enhancement request.  This has probably been requested before, but
> here goes...

> It is not uncommon to have a `defface' inside a condition such as (when
> (> emacs-major-version 23)...).  Currently, `C-M-x' has no effect on
> such a `defface' occurrence.  In order to have Emacs DTRT, I find myself
> working around this limitation by temporarily moving the `defface' to
> bol.

You can also move point to just after the closing ) and do C-x C-e
(`eval-last-sexp').

> How about letting users redefine a `defface' with `C-M-x' even in this
> case?

How is Emacs to determine which depth of parenthesis is to be considered
the opening one?  For example, if a defface is contained within a
defmacro, which one is to be executed on C-M-x?

> At least optionally.  For example, let a non-positive prefix arg do
> this, and have edebug instrumentation done only for a non-negative
> prefix arg.

> Or maybe always (not optionally)?  Is there a good reason for doing this
> only at top-level?

I think it is to make it unambiguous, which form is to be evaluated.

> If the reason is that `eval-defun' cannot recognize the defun
> (`defface') unless it is at top level, then surely there is some way to
> make this more flexible.

> In GNU Emacs 25.0.50.1 (i686-pc-mingw32)
> of 2014-10-20 on LEG570
> Bzr revision: 118168 rgm@gnu.org-20141020195941-icp42t8ttcnud09g
> Windowing system distributor `Microsoft Corp.', version 6.1.7601
> Configured using:
> `configure --enable-checking=yes,glyphs CPPFLAGS=-DGLYPH_DEBUG=1'

-- 
Alan Mackenzie (Nuremberg, Germany).






reply via email to

[Prev in Thread] Current Thread [Next in Thread]