unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Matthew Carter <m@ahungry.com>
To: Drew Adams <drew.adams@oracle.com>
Cc: John Wiegley <johnw@gnu.org>,
	 "xenodasein@tutanota.de" <xenodasein@tutanota.de>,
	 xenodasein--- viaEmacs development discussions.
	<emacs-devel@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,
	"stefankangas@gmail.com" <stefankangas@gmail.com>
Subject: Re: [External] : Re: Adding use-package to core
Date: Sun, 13 Nov 2022 18:13:34 -0500	[thread overview]
Message-ID: <87o7tacush.fsf@ahungry.com> (raw)
In-Reply-To: <SJ0PR10MB5488DB1734C89EA26E378CF4F3029@SJ0PR10MB5488.namprd10.prod.outlook.com> (Drew Adams's message of "Sun, 13 Nov 2022 22:03:03 +0000")

Drew Adams <drew.adams@oracle.com> writes:

>> To me, use-package and package.el are mainly orthogonal:
>> Package.el is for package management (installing, updating,
>> removing), while use-package is for customization beyond
>> what Customize provides -- or at least allows you to
>> concentrate changes related to the same package in one place.
>
> Speaking/asking from ignorance here...
>
> 1. "Customization beyond what Customize provides"
>
> What kinds of such customization, besides the
> one you call out next (#2)?
>
> 2. "allows you to concentrate changes related
> to the same package in one place"
>
> Can you be more specific here?  How does what
> you have in mind differ from what customize
> groups provide?
>
> _____
>
> For #2, a package can even have a group with
> subgroups.  And a package has parent groups.
> Seems to me that not only do Customize groups
> let you concentrate changes in one place, but
> they even let you do so in a hierarchical way
> (a graph, i.e., hierarchies with sharing),
> that is, change your focus of concentration.
> This applies for both browsing/discovering
> and changing settings.
>
> Examples at different ends of the grouping
> spectrum:
>
> `M-x customize-group bookmark-plus' shows 114
> options and faces.  Flat: no subgroups.
>
> On the other hand, group `Icicles' has nine
> subgroups. `M-x customize-group Icicles' shows
> the following, where each parent group and
> subgroup name links to its `customize-group'
> presentation:
> ______
>
> Parent groups: Matching Completion Apropos Dabbrev
>                Help Recentf Minibuffer Convenience
>
> Icicles group: 
>      State : visible group members are all at standard values.
>
>    Minibuffer input completion and cycling of completion candidates.
>
>    See also Doc-Part1, Doc-Part2, Description, Download, Other
>    Libraries by Drew, and Send Bug Report.
>
>  hexrgb-canonicalize-defined-colors-flag 
>    Non-nil means remove duplicate color names. More
>
>  icicle-completion-style-sets 
>    Possible 'completion-styles' values for when 'TAB' completion
>    method is 'vanilla'.
>
> Subgroups:
> Icicles-Buffers
>   Icicles preferences related to buffers.
> Icicles-Completions-Display
>   Icicles preferences related to display of completion candidates.
> Icicles-Files
>   Icicles preferences related to files.
> Icicles-Key-Bindings
>   Icicles preferences related to key bindings.
> Icicles-Key-Completion
>   Icicles preferences related to key completion
>   ('icicle-complete-keys').
> Icicles-Matching
>   Icicles preferences related to matching input for completion.
> Icicles-Minibuffer-Display
>   Icicles preferences related to minibuffer display during
>   completion.
> Icicles-Miscellaneous
>   Miscellaneous Icicles preferences.
> Icicles-Searching
>   Icicles preferences related to searching.
> _____
>
> A guess is that you have in mind other _kinds_
> of customizations, beyond options and faces.
> Is that it?
>
> Customize is limited, but it would be good to
> set straight which of its limitations
> `use-package' helps overcome.
>
> One guess would be key bindings.  (The Emacs
> manual has two completely separate sections,
> `Easy Customization Interface' and `Customizing
> Key Bindings', with eight and ten subsections,
> respectively.)  (`defcustom' now has :type
> `key-sequence', but that's of course only for
> customizing option values.)
> _____
>
> To be clear, I'm not making any statement about
> either `use-package' or Customize.  Certainly
> the Customize UI could be improved, and there
> are user customizations that Customize doesn't
> help with at all, OOTB.
>
> It might be good to match some of its limitations
> against what `use-package' offers to handle them.
> Maybe that's the best solution for them, or maybe
> it can serve as food for thought for improvement
> to Customize.
>

I have always found M-x customize lacking, in that it expects to store
my preferences in a machine readable way (albeit, still text, but ill
formatted and automatically appended to my files) and be set up via a
slow manual process (hopping through customize menus is much slower than
just editing elisp).

Conversely, use-package allows me to set up all the options I care about
in one area, share them with others, and tweak them via the plain old
text editing vs clunky menus (I use emacs in TTY mode, maybe in GUI mode
these are less clunky).

If all customs were equivalent to a setq, I could do the old way
(organize on my own, with various (setq some-thing some-value)), however
more and more packages seem to need actual M-x customize assignment (a
simple setq won't make the change take proper effect).

Thankfully use-package accommodates this, and I can set these up in a
plain old lisp format in the :custom block the use-package provides.

In close to 15 years of using Emacs, I've never opted for M-x customize
when other alternatives would do as a user (although I aim to support it
in the non-GNU packages I provide).

-- 
Matthew Carter (m@ahungry.com)
http://ahungry.com



  parent reply	other threads:[~2022-11-13 23:13 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-13 16:11 Adding use-package to core xenodasein--- via Emacs development discussions.
2022-11-13 16:48 ` Eli Zaretskii
2022-11-13 17:53   ` John Wiegley
2022-11-13 18:13     ` Eli Zaretskii
2022-11-13 18:45       ` John Wiegley
2022-11-13 18:05 ` Stefan Kangas
     [not found] ` <838rkels13.fsf@gnu.org-NGltIw7----9>
2022-11-13 18:12   ` xenodasein--- via Emacs development discussions.
2022-11-13 18:22     ` Stefan Kangas
2022-11-13 18:31     ` Eli Zaretskii
2022-11-13 19:19       ` xenodasein--- via Emacs development discussions.
2022-11-13 20:08         ` Eli Zaretskii
2022-11-13 18:46     ` John Wiegley
2022-11-13 19:02       ` xenodasein--- via Emacs development discussions.
2022-11-13 19:48         ` John Wiegley
2022-11-13 22:03           ` [External] : " Drew Adams
2022-11-13 22:45             ` North Year
2022-11-13 23:13             ` Matthew Carter [this message]
2022-11-14  8:10               ` Juanma Barranquero
2022-11-14  4:17             ` Tim Cross
2022-11-14  6:02             ` John Wiegley
2022-11-13 20:04         ` Eli Zaretskii
2022-11-14 10:32           ` xenodasein--- via Emacs development discussions.
2022-11-14 13:30             ` Eli Zaretskii
2022-11-14  0:27 ` Po Lu
2022-11-14 10:12   ` xenodasein--- via Emacs development discussions.
2022-11-14 10:47     ` Po Lu
2022-11-14 11:52       ` xenodasein--- via Emacs development discussions.
2022-11-14 12:19         ` Po Lu
2022-11-15 15:39           ` Michael Albinus
2022-11-14 13:54         ` Eli Zaretskii
2022-11-14 14:47           ` xenodasein--- via Emacs development discussions.
2022-11-14 17:39             ` Eli Zaretskii
2022-11-15 15:38               ` xenodasein--- via Emacs development discussions.
2022-11-15 16:24                 ` Configuration helpers (wad: Adding use-package to core) Stefan Monnier
2022-11-15 19:22                 ` Adding use-package to core Eli Zaretskii
2022-11-18 19:29   ` Sean Whitton
2022-11-18 19:33     ` Philip Kaludercic
2022-11-18 19:48       ` [External] : " Drew Adams
2022-11-18 19:42     ` Eli Zaretskii
2022-11-18 20:43       ` Philip Kaludercic
2022-11-19  7:12         ` Eli Zaretskii
2022-11-19  7:33           ` Philip Kaludercic
2022-11-19  8:04             ` Eli Zaretskii
2022-11-19 10:09               ` Philip Kaludercic
2022-11-19 10:31                 ` Eli Zaretskii
2022-11-19 11:02                   ` Philip Kaludercic
2022-11-19 11:15                     ` Stefan Kangas
2022-11-19 11:58                     ` Eli Zaretskii
2022-11-19 12:15                       ` Philip Kaludercic
2022-11-19 15:28               ` Stefan Monnier
2022-11-19 15:36                 ` Philip Kaludercic
2022-11-19 15:46                 ` Eli Zaretskii
2022-11-19 15:26           ` Stefan Monnier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87o7tacush.fsf@ahungry.com \
    --to=m@ahungry.com \
    --cc=drew.adams@oracle.com \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=johnw@gnu.org \
    --cc=stefankangas@gmail.com \
    --cc=xenodasein@tutanota.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).