Subject: RE: bug#24549: 25.1; Customizing group `text'

From: Drew Adams <[email-masked]>
Date: Tue, 27 Sep 2016 09:58:29 -0700 (PDT)

> > > 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)