unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: emacs-devel@gnu.org
Subject: Re: A widget-based version of find-cmd
Date: Mon, 03 Jun 2019 15:07:41 -0400	[thread overview]
Message-ID: <jwvv9xmpkk0.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: 87v9xrfjyj.fsf@web.de

> I like the idea of find-cmd.el but it's worthless to me since I use find
> not often enough to remember all the option names, how time specs work
> etc.
>
> That's why I plan a widget-based version where the user can compose the
> find command by clicking around in a tree of widgets, all guided with
> categories to choose from, annotations with doc etc.

I think I understand what you're after, but I'd like to clarify:
find-cmd lets you build a command using an Elisp expression, so it's
meant for use from Elisp code, rather than interactively.
Whereas you seem to be considering an interactive use case, right?

> I would like to extend find-cmd cause it already has a collection of
> syntactical information about find options -- would that be acceptable?

Yes, of course.  Another direction (complementary rather than opposed to
what you're suggesting) would be to extend Elisp's completion so it
understands `find-cmd` and hence gives you the valid completion after
you type `(find-cmd '(pru TAB`
[ Of course, we don't want elisp-mode.el to know about find-cmd.el,
  we'd instead want this to be modular; could be used for `rx` as well,
  for example.  ]

> Or would it be a better approach to try to somehow extract the
> documentation of the options from the find man page?

That'd be spiffy.

> I'm currently struggling with the widget stuff however, mostly because I
> struggle with the documentation.

I'm sending you all my psychic power.  I hope it helps.

> What I basically need is to define a
> widget type that let's you choose from a list of options.  Among them
> are combiners like "or" that, when chosen, should provide a widget of
> the same type.  My problem is that I run into an infinite recursion.  I
> thought I can avoid that by constructing the widget deferred via
> :convert-widget but that doesn't help.  Maybe :convert-widget is not for
> that purpose (actually, then I don't get the purpose of :convert-widget
> from the widget manual).

I think you're looking for the `lazy` widget.

> BTW, apropos using C-c C-c, why is cus-edit stealing this key by doing
>
>   (widget-put (get 'editable-field 'widget-type) :keymap custom-field-keymap)
>
> AFAIU the editable-field widget is not only useful for custom?

The Widgets code was written pretty much specifically for Customs, so
I'm not surprised if some parts are not cleanly separated.
Please mark them with a FIXME or fix them when you bump into them ;-)


        Stefan




  reply	other threads:[~2019-06-03 19:07 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-31  2:15 A widget-based version of find-cmd Michael Heerdegen
2019-06-03 19:07 ` Stefan Monnier [this message]
2019-06-03 20:41   ` Drew Adams
2019-06-03 22:53     ` Michael Heerdegen
2019-06-03 23:28       ` Drew Adams
2019-06-13 23:35         ` Michael Heerdegen
2019-09-05 15:04           ` Michael Heerdegen
2019-09-05 17:10             ` Drew Adams
2019-09-05 21:26               ` Michael Heerdegen
2019-09-06 12:39             ` local binding ineffective inside widget Stefan Monnier
2019-09-06 14:10               ` Michael Heerdegen
2019-09-24  9:28                 ` Michael Heerdegen
2019-06-03 22:40   ` A widget-based version of find-cmd Michael Heerdegen

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=jwvv9xmpkk0.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=emacs-devel@gnu.org \
    /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).