[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] [bug?] org-copy-face doesn’t add faces to org-faces customize gr
From: |
Sebastien Vauban |
Subject: |
Re: [O] [bug?] org-copy-face doesn’t add faces to org-faces customize group |
Date: |
Fri, 29 Aug 2014 13:45:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3.93 (windows-nt) |
Aaron Ecay wrote:
> I’ve noticed that the faces defined by org-copy-face are not added to
> the org-faces customize group. This is in accordance with the docstring
> of ‘copy-face’, which says (in part) “This function does not copy face
> customization data, so NEW-FACE will not be made customizable. Most
> Lisp code should not call this function; use `defface' with :inherit
> instead.”
>
> I think it’s at best an odd surprise and at worst a bug that all org’s
> faces are not accessible from the org-faces customize group. Would
> there be any objection to replacing all uses of this function with
> :inherit as recommended by the docstring, and removing the org-copy-face
> function?
>
> For reference, here are the uses of the function, as returned by rgrep:
>
> ./lisp/org-faces.el:431:(org-copy-face 'org-todo 'org-checkbox-statistics-todo
> ./lisp/org-faces.el:434:(org-copy-face 'org-done 'org-checkbox-statistics-done
> ./lisp/org-faces.el:540:(org-copy-face 'org-meta-line 'org-block-begin-line
> ./lisp/org-faces.el:543:(org-copy-face 'org-meta-line 'org-block-end-line
> ./lisp/org-faces.el:560:(org-copy-face 'org-block 'org-quote
> ./lisp/org-faces.el:562:(org-copy-face 'org-block 'org-verse
> ./lisp/org-faces.el:600:(org-copy-face 'org-agenda-structure 'org-agenda-date
> ./lisp/org-faces.el:603:(org-copy-face 'org-agenda-date 'org-agenda-date-today
> ./lisp/org-faces.el:607:(org-copy-face 'secondary-selection
> 'org-agenda-clocking
> ./lisp/org-faces.el:610:(org-copy-face 'org-agenda-date
> 'org-agenda-date-weekend
> ./lisp/org-faces.el:719:(org-copy-face 'org-time-grid 'org-agenda-current-time
> ./lisp/org-faces.el:791:(org-copy-face 'mode-line 'org-mode-line-clock
> ./lisp/org-faces.el:793:(org-copy-face 'mode-line 'org-mode-line-clock-overrun
I think it's related to an Emacs bug (#16440) which I reported on the
Org mailing list in February.
As stated by Eli (in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16440+):
╭────
│ Org uses org-copy-face to define the faces that you show in your
│ screencast, and org-copy-face assumes the face it inherits from
│ already exists. But loading a theme now doesn't create the faces, it
│ only prepares the data for when the face will be created. So :inherit
│ in org-copy-face doesn't do what you expect.
│
│ I guess either some change is needed in how themes are handled, or
│ org-copy-face needs to change to follow suit. (CC to Bastien for
│ that.)
╰────
In the same functional area, there is also the bug #15298 still pending
(http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15298) about "Background
color lost when highlighting a string".
Best regards,
Seb
--
Sebastien Vauban