emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A widget-based version of find-cmd


From: Stefan Monnier
Subject: Re: A widget-based version of find-cmd
Date: Mon, 03 Jun 2019 15:07:41 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

> 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 via email to

[Prev in Thread] Current Thread [Next in Thread]