unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#24549: 25.1; Customizing group `text'
@ 2016-09-26 20:46 Drew Adams
  2016-09-26 20:54 ` Drew Adams
  2016-09-27 14:27 ` Eli Zaretskii
  0 siblings, 2 replies; 7+ messages in thread
From: Drew Adams @ 2016-09-26 20:46 UTC (permalink / raw)
  To: 24549

1. M-x customize-group RET emacs RET

That shows a group named "Text".

2. M-x customize-group RET text RET

says "[No match]"

There is apparently no such group - at least none reachable using
completion.

Something seems wrong, somewhere, e.g., for `customize-group'.



In GNU Emacs 25.1.1 (x86_64-w64-mingw32)
 of 2016-09-17 built on LAPHROAIG
Windowing system distributor 'Microsoft Corp.', version 6.1.7601
Configured using:
 'configure --without-dbus --without-compress-install CFLAGS=-static'





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
  2016-09-26 20:46 bug#24549: 25.1; Customizing group `text' Drew Adams
@ 2016-09-26 20:54 ` Drew Adams
  2016-09-27 14:27 ` Eli Zaretskii
  1 sibling, 0 replies; 7+ messages in thread
From: Drew Adams @ 2016-09-26 20:54 UTC (permalink / raw)
  To: 24549

See this thread of help-gnu-emacs, for more information:

http://lists.gnu.org/archive/html/help-gnu-emacs/2016-09/msg00162.html





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
  2016-09-26 20:46 bug#24549: 25.1; Customizing group `text' Drew Adams
  2016-09-26 20:54 ` Drew Adams
@ 2016-09-27 14:27 ` Eli Zaretskii
  2016-09-27 14:49   ` Drew Adams
  1 sibling, 1 reply; 7+ messages in thread
From: Eli Zaretskii @ 2016-09-27 14:27 UTC (permalink / raw)
  To: Drew Adams; +Cc: 24549

> Date: Mon, 26 Sep 2016 13:46:26 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> 
> 1. M-x customize-group RET emacs RET
> 
> That shows a group named "Text".
> 
> 2. M-x customize-group RET text RET
> 
> says "[No match]"
> 
> There is apparently no such group - at least none reachable using
> completion.

The group's _symbol_ is 'wp', "Text" is only its label (a.k.a. :tag):

  (defgroup wp nil
    "Support for editing text files."
    :tag "Text"
    :group 'emacs)

The ELisp manual says:

  ‘:tag LABEL’
       Use LABEL, a string, instead of the item’s name, to label the item
       in customization menus and buffers.  *Don’t use a tag which is
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^
       substantially different from the item’s real name; that would cause
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       confusion.*
       ^^^^^^^^^^^

(a.k.a. "do as I say, not as I do").

Unfortunately, this is a very old problem, and the 'wp' thingy is by
now probably spread too much, including outside of Emacs, for us to
even consider renaming the symbol itself.

So I think one band-aid solution could be:

  . mention the group's symbol in its doc string, so that it could be
    seen in the Custom buffer;

  . extend customize-read-group so it also accepts group tags, not
    just their symbols.

Any better ideas?

Patches welcome, TIA.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
  2016-09-27 14:27 ` Eli Zaretskii
@ 2016-09-27 14:49   ` Drew Adams
  2016-09-27 15:05     ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Drew Adams @ 2016-09-27 14:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 24549

> The group's _symbol_ is 'wp', "Text" is only its label (a.k.a. :tag):
> 
>   (defgroup wp nil
>     "Support for editing text files."
>     :tag "Text"
>     :group 'emacs)

Ah yes.  I should have checked that.

IMHO, this is a gotcha.  Emacs itself, especially, should not do
this by default.

If there is no good way to create an alias for group `text' here,
then perhaps we should at least create another group `text',
which inherits from this.  The problem (gotcha) should be taken
care of in some way.

> The ELisp manual says:
> 
>   ‘:tag LABEL’
>        Use LABEL, a string, instead of the item’s name, to label the item
>        in customization menus and buffers.  *Don’t use a tag which is
>                                             ^^^^^^^^^^^^^^^^^^^^^^^^^
>        substantially different from the item’s real name; that would cause
>        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>        confusion.*
>        ^^^^^^^^^^^
> 
> (a.k.a. "do as I say, not as I do").

Exactly.
 
> Unfortunately, this is a very old problem, and the 'wp' thingy is by
> now probably spread too much, including outside of Emacs, for us to
> even consider renaming the symbol itself.

See above.  I don't think there is a way to alias it (and then
deprecate `wp'.  But at least we can make a group `text' that
DTRT.

> So I think one band-aid solution could be:
> 
>   . mention the group's symbol in its doc string, so that it could be
>     seen in the Custom buffer;

Yes, but a user using `M-x customize' and then trying to drill
down, will not necessarily take time to read that doc.

>   . extend customize-read-group so it also accepts group tags, not
>     just their symbols.

That's not a bad idea.  But in that case, we would essentially
get near-duplicate names for those groups that actually followed
the instructions and used a similar (but not identical) name for
the tag label.  IOW, a tag that is more explicit (e.g. longer)
or is an abbreviation of the group name (i.e., shorter) would
be present for completion, along with the group name itself.

That's not a big problem, IMO.  This could indeed be a solution.

> Any better ideas?

See above.  We can create another group, `text', which inherits
from `wp'.  Emacs itself could move toward using group `text'
everywhere.  The doc for group `text' could say that `wp' is
deprecated (even though there is no code-enforcement via
warning etc.).

IOW, we can (1) make a group `text' that behaves essentially
like `wp' and (2) let users know that `wp' is considered
deprecated.

Yes, this would mean that both `text' and `wp' would appear
for completion.  But unlike your proposed solution, this
would be a one-off bug fix, and not a generalization that
applies to every use of a tag.

A priori - i.e., until I hear more pros & cons, I think this
would be a better solution that what you suggested.  What do
you think?

One way or another, we need, I think, to make `text' work.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
  2016-09-27 14:49   ` Drew Adams
@ 2016-09-27 15:05     ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2016-09-27 15:05 UTC (permalink / raw)
  To: Drew Adams; +Cc: 24549

> Date: Tue, 27 Sep 2016 07:49:09 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 24549@debbugs.gnu.org
> 
> > Any better ideas?
> 
> See above.  We can create another group, `text', which inherits
> from `wp'.  Emacs itself could move toward using group `text'
> everywhere.  The doc for group `text' could say that `wp' is
> deprecated (even though there is no code-enforcement via
> warning etc.).
> 
> IOW, we can (1) make a group `text' that behaves essentially
> like `wp' and (2) let users know that `wp' is considered
> deprecated.

If this works, it is probably better, yes.





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
       [not found]     ` <<83twd1bcx6.fsf@gnu.org>
@ 2016-09-27 16:58       ` Drew Adams
  2016-10-08 13:40         ` Eli Zaretskii
  0 siblings, 1 reply; 7+ messages in thread
From: Drew Adams @ 2016-09-27 16:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 24549

> > > Any better ideas?
> >
> > See above.  We can create another group, `text', which inherits
> > from `wp'.  Emacs itself could move toward using group `text'
> > everywhere.  The doc for group `text' could say that `wp' is
> > deprecated (even though there is no code-enforcement via
> > warning etc.).
> >
> > IOW, we can (1) make a group `text' that behaves essentially
> > like `wp' and (2) let users know that `wp' is considered
> > deprecated.
> 
> If this works, it is probably better, yes.

IOW, something like the code below.

Question 1: Why is group `outlines' declared in both
cus-edit.el and outline.el?  And in outline.el it has a
prefix declared, but not in cus-edit.el.  Group `outlines'
is not _used_ in cus-edit.el, AFAICT.  What would happen
if we removed group `outlines' from cus-edit.el?
(This question has nothing to do with this bug report.
Just happened to notice the duplication.)

Question 2: Should group `text' inherit directly from group
`emacs'?  Should it also inherit from group `wp'?

I think the answer to both of these is yes.  WDYT?

Question 3: Should group `wp' still be inherited from, by a
group that now inherits from `text'?  E.g., should group
`tildify' inherit from both `wp' as well as from `text'?

I don't think so.  If group `text' itself inherits from `wp'
then I don't think there is any reason that we need to have
other groups still inherit directly from `wp' (as well as
from `text').  WDYT?

I think that the more we can hide `wp' from users, the better.
If it needs to continue to be there for a while, because of
possibly existing 3rd-party code, then we should keep it
around.  But we can try to minimize its obvious exposure.

;;; cus-edit.el

;; No :tag anymore
;;
(defgroup wp nil
  "Support for editing text files.
Use group `text' for this instead.  Group `wp' is deprecated."
  :group 'emacs)

(defgroup text nil
  "Support for editing text files."
  :group 'emacs
  ;; Inherit from deprecated `wp' for compatibility, for now.
  :group 'wp)

(defgroup outlines nil
  "Support for hierarchical outlining."
  :group 'text)

(defgroup tex nil
  "Code related to the TeX formatter."
  :link '(custom-group-link
           :tag "Font Lock Faces group" font-lock-faces)
  :group 'text)

;;; delim-col.el

(defgroup columns nil
  "Prettify columns."
  :link '(emacs-library-link
           :tag "Source Lisp File" "delim-col.el")
  :prefix "delimit-columns-"
  :group 'text)

;;; lpr.el

(defgroup lpr nil
  "Print Emacs buffer on line printer."
  :group 'text)

;;; outline.el

(defgroup outlines nil
  "Support for hierarchical outlining."
  :prefix "outline-"
  :group 'text)

;;; printing.el

(defgroup printing nil
  "Printing Utilities group."
  :tag "Printing Utilities"
  :link '(emacs-library-link :tag "Source Lisp File" "printing.el")
  :prefix "pr-"
  :version "22.1"
  :group 'text
  :group 'postscript)

;;; ps-print.el

(defgroup ps-print nil
  "PostScript generator for Emacs."
  :link '(emacs-library-link :tag "Source Lisp File" "ps-print.el")
  :prefix "ps-"
  :version "20"
  :group 'text
  :group 'postscript)

;;; view.el

(defgroup view nil
  "Peruse file or buffer without editing."
  :link '(function-link view-mode)
  :link '(custom-manual "(emacs)Misc File Ops")
  :group 'text)

;;; nxml/rng-valid.el

(defgroup relax-ng nil
  "Validation of XML using RELAX NG."
  :group 'text
  :group 'nxml
  :group 'languages)

;;; obsolete/scribe.el

(defgroup scribe nil
  "Scribe mode."
  :prefix "scribe-"
  :group 'text)

;;; progmodes/ebnf2ps.el

(defgroup ebnf2ps nil
  "Translate an EBNF to a syntactic chart on PostScript."
  :prefix "ebnf-"
  :version "20"
  :group 'text
  :group 'postscript)

;;; textmodes/bib-mode.el

(defgroup bib nil
  "Major mode for editing bib files."
  :prefix "bib-"
  :group 'external
  :group 'text)

;;; textmodes/enriched.el

(defgroup enriched nil
  "Read and save files in text/enriched format."
  :group 'text)

;;; textmodes/nroff-mode.el

(defgroup nroff nil
  "Nroff mode."
  :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
  :group 'text
  :prefix "nroff-")

;;; textmodes/picture.el

(defgroup picture nil
  "Editing text-based pictures (\"ASCII art\")."
  :prefix "picture-"
  :group 'text)

;;; textmodes/refbib.el

(defgroup refbib nil
  "Convert refer-style references to ones usable by Latex bib."
  :prefix "r2b-"
  :group 'text)

;;; textmodes/refer.el

(defgroup refer nil
  "Look up references in bibliography files."
  :prefix "refer-"
  :group 'text)

;;; textmodes/rst.el

(defgroup rst nil "Support for reStructuredText documents."
  :group 'text
  :version "23.1"
  :link '(url-link "http://docutils.sourceforge.net/rst.html"))

;;; textmodes/table.el

(defgroup table nil
  "Text based table manipulation utilities."
  :tag "Table"
  :prefix "table-"
  :group 'text
  :version "22.1")

;;; textmodes/text-mode.el

(defcustom text-mode-hook '(text-mode-hook-identify)
  "Normal hook run when entering Text mode and many related modes."
  :type 'hook
  :options '(turn-on-auto-fill turn-on-flyspell)
  :group 'text)

;;; textmodes/tildify.el

(defgroup tildify nil
  "Add hard spaces or other text fragments to text buffers."
  :version "21.1"
  :group 'text)





^ permalink raw reply	[flat|nested] 7+ messages in thread

* bug#24549: 25.1; Customizing group `text'
  2016-09-27 16:58       ` Drew Adams
@ 2016-10-08 13:40         ` Eli Zaretskii
  0 siblings, 0 replies; 7+ messages in thread
From: Eli Zaretskii @ 2016-10-08 13:40 UTC (permalink / raw)
  To: Drew Adams; +Cc: 24549-done

> Date: Tue, 27 Sep 2016 09:58:29 -0700 (PDT)
> From: Drew Adams <drew.adams@oracle.com>
> Cc: 24549@debbugs.gnu.org
> 
> > > IOW, we can (1) make a group `text' that behaves essentially
> > > like `wp' and (2) let users know that `wp' is considered
> > > deprecated.
> > 
> > If this works, it is probably better, yes.
> 
> IOW, something like the code below.

Thanks, done on the master branch.

> Question 1: Why is group `outlines' declared in both
> cus-edit.el and outline.el?  And in outline.el it has a
> prefix declared, but not in cus-edit.el.  Group `outlines'
> is not _used_ in cus-edit.el, AFAICT.  What would happen
> if we removed group `outlines' from cus-edit.el?
> (This question has nothing to do with this bug report.
> Just happened to notice the duplication.)

This duplication is an oversight from when outline.el was converted to
use Custom.  I fixed this now.

> Question 2: Should group `text' inherit directly from group
> `emacs'?  Should it also inherit from group `wp'?

I left it inherit from both.  It cannot do any harm, I think.

> I think the answer to both of these is yes.  WDYT?
> 
> Question 3: Should group `wp' still be inherited from, by a
> group that now inherits from `text'?  E.g., should group
> `tildify' inherit from both `wp' as well as from `text'?
> 
> I don't think so.  If group `text' itself inherits from `wp'
> then I don't think there is any reason that we need to have
> other groups still inherit directly from `wp' (as well as
> from `text').  WDYT?

I agree.

I think this bug is now done.





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-10-08 13:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-26 20:46 bug#24549: 25.1; Customizing group `text' Drew Adams
2016-09-26 20:54 ` Drew Adams
2016-09-27 14:27 ` Eli Zaretskii
2016-09-27 14:49   ` Drew Adams
2016-09-27 15:05     ` Eli Zaretskii
     [not found] <<8aaf30c2-ceb2-4803-9e2e-cd10ad8a3802@default>
     [not found] ` <<837f9xct9z.fsf@gnu.org>
     [not found]   ` <<9eab3611-2ed6-422b-93bc-4270ef1b6082@default>
     [not found]     ` <<83twd1bcx6.fsf@gnu.org>
2016-09-27 16:58       ` Drew Adams
2016-10-08 13:40         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).