cmd: auto-complete args starting with a $
Get series with b4
b4 am 20181204113313.577178ac@bbrezillonVersions newest first
- v1 Latest0 of 2 patches 0 repliesNew
Patches in v1 No applies recorded yet
None of the 2 patches the cover letter announces are in this archive.
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [U-Boot] [PATCH 0/2] cmd: auto-complete args starting with a $
Hi Wolfgang,
Quoted 10 lines · On Tue, 04 Dec 2018 11:14:31 +0100 Wolfgang Denk <[email protected]> wrote:
Dear Boris,
Quoted 7 lines · In message <20181204105448.63b9af8c@bbrezillon> you wrote:
Quoted 7 lines
Quoted 6 lines
It's pretty common to pass arguments that start with a $ and are then expanded by the shell, and I'm this kind of lazy guy that hits tab all the time and expects the shell to suggest something appropriate. So here is a patchset adding support for ${} auto-completion and using the new helper from the mtd command.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
You mean, this feature depends on MTD support? this is not goot.
Not at all, MTD is just the first user of this
dollar_complete()helper. That's what I meant.But is this not based on the code of
mtd_name_complete()which is only availabole when MTD is present?
Nope. See patch 1, the code is completely independent from the mtd cmd.
Quoted 14 lines
Quoted 9 lines
Quoted 3 lines
Also, you should make this feature configurable. Not everybody may want to use it or may have the memory available.
It already depends on
CONFIG_AUTO_COMPLETE, and each command has to explicitly call the helper to support ${} auto-completion. Not that $ auto-completion only makes sense for some arguments, not all of them. It's the responsibility of the command itself to decide when it should be used.Um... this is not hat I would expect - if we implement auto-completion for variables, it should IMO work similar to what a standard shell is doing.
Quoted 5 lines
In Bash, I can do:
-> foo=1234
-> echo $f<TAB>
$f $flag $foo
And that's pretty much how it works except that right now, echo has to be patched to support $ auto-completion.
Quoted 1 line
-> echo $f
For the record, not all shell configs expand $foo, some require that foo be enclosed in ${} (${foo}), that's why the current proposal always auto-completes $ as ${.
Quoted 7 lines
i. e. this is a feature of the shell and not of any command. Implementing this a zillion times for each of the commands in inacceptable. Also, implementing it for one command and not for another makese no sense - that would violate the Principle of Least Surprise, as you have something which looks convenient but does not work everywhere.
Okay, I understand. I can try to hook that up at the common/command.c level.
Quoted 10 lines
Quoted 7 lines
Quoted 4 lines
Technically - should autocompletion not be prevented for escaped '$' characters, i. e. hitting TAB after a '\$' sequence should NOT expand?
It's already the case. The argument has to start with $ or ${ to be auto-completed.
We should implement this such that behaviour is similar to what we see on a standard shell.
Apart from the "make that available to everyone" comment, is there anything else you think should be changed? IOW, what is not compliant with a standard shell auto-completion in my proposal?
Regards,
Boris