zsh-workers
 help / color / mirror / code / Atom feed
From: Frank Terbeck <ft@bewatermyfriend.org>
To: Oliver Kiddle <okiddle@yahoo.co.uk>
Cc: zsh-workers@zsh.org
Subject: Re: [PATCHv3] Refactor baud rate completion
Date: Sat, 07 May 2016 23:53:12 +0200	[thread overview]
Message-ID: <87eg9dmt6f.fsf@ft.bewatermyfriend.org> (raw)
In-Reply-To: <27858.1462193719@thecus.kiddle.eu> (Oliver Kiddle's message of "Mon, 02 May 2016 14:55:19 +0200")

Oliver Kiddle wrote:
[...]
> It is usually more flexible to just accept normal compadd options for
> descriptions and tags and pass them on to compadd fairly directly. It
> then will work in conjunction with other helpers like _alternative.
> _pdf is a good example. Using _wanted here isn't entirely necessary:
> _description would be sufficient and avoids nesting tag loops.

So, _pdf does this:

    _description files expl 'PDF file'
    _files "$@" "$expl[@]" -g "*.(#i)pdf$ext(-.)"

which made me think that the following would be a reasonable call:

    _description -1V baud-rates expl 'baud rate'
    compadd "$@" "$expl[@]" -- "${rates[@]}"

Passing "$@" to compadd makes _arguments parameters like this work:

  '-s[line speed]:line speed:_baudrates' \

Because that makes the helper pass the -X ... option containing "line
speed" to compadd. However "$@" also contains -J option-s-1, which makes
compadd create a sorted group, which is not that useful here.

Passing -V to _description adds -V to "expl", but compadd seems to use
the first argument it finds. But I can't just put "$@" behind expl, in
the compadd call because in that case I won't get the description set in
the _arguments call, if _baudrates was called from _arguments.

I don't know if there is a simple way to make it work the way I'd like
(unsorted group as well as inheriting the right description), so I ended
up doing this:

    _description -1V baud-rates expl 'baud rate'
    compadd "${(@)argv/#-J/-V}" "$expl[@]" -- "${rates[@]}"

That feels pretty dirty, but it seems to work.

The completion-style-guide mentions the following:

    _description -1V tag expl '...'
    compadd "$expl[@]" - ...

But that would discard any descriptions given in an _arguments call.

Better ideas welcome.


Regards, Frank


  parent reply	other threads:[~2016-05-07 22:26 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-01  1:12 [PATCH] Add completion for picocom utility Frank Terbeck
2016-05-01  3:27 ` Ryan Wilson
2016-05-01 10:57   ` Frank Terbeck
2016-05-01 12:47     ` [PATCH] Refactor baud rate completion Frank Terbeck
2016-05-01 13:14     ` [PATCHv2] " Frank Terbeck
2016-05-01 13:27     ` [PATCHv3] " Frank Terbeck
2016-05-01 22:21       ` Frank Terbeck
2016-05-02 12:55       ` Oliver Kiddle
2016-05-03 21:01         ` Frank Terbeck
2016-05-07 21:53         ` Frank Terbeck [this message]
2016-05-11 15:08           ` Oliver Kiddle
2016-05-07 22:09         ` [PATCH 0/6] Update baud rate completion with Oliver's comments in mind Frank Terbeck
2016-05-07 22:09           ` [PATCH 1/6] _baudrate → _baudrates Frank Terbeck
2016-05-07 22:09           ` [PATCH 2/6] _baudrates: Use 2 space indentation Frank Terbeck
2016-05-07 22:53             ` Frank Terbeck
2016-05-07 22:09           ` [PATCH 3/6] Use _baudrates helper instead of _baudrate Frank Terbeck
2016-05-07 22:09           ` [PATCH 4/6] _baudrates: Fit better into the general completion framework Frank Terbeck
2016-05-07 22:09           ` [PATCH 5/6] _cu: Remove old -d option of _baudrates Frank Terbeck
2016-05-07 22:09           ` [PATCH 6/6] _baudrates: Make style lookups fit better with the rest of compsys Frank Terbeck

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

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

  git send-email \
    --in-reply-to=87eg9dmt6f.fsf@ft.bewatermyfriend.org \
    --to=ft@bewatermyfriend.org \
    --cc=okiddle@yahoo.co.uk \
    --cc=zsh-workers@zsh.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.vuxu.org/mirror/zsh/

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 NNTP newsgroup(s).