From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 17749 invoked from network); 11 May 2021 14:14:24 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 11 May 2021 14:14:24 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1620742464; b=Fe/L7kNUrC6jfIfVeogkHqS3f6YkRx2C4ULcDuiIk39rjfpg4ykb1kItMLVGQkzvRa/z5jd/J/ M5Uz2XDj7ykOJkciZqjMdYHoxPkhvcnQn3PgA5gUj6M6TzXsw1jEYeE3PicCRaHwlxizAGeANP yCWN7QvLMwfHE/YQCG2ERjvu7R/riyGeG+6JWoOO3DWoorMvVDOdZkhDDGudgJeskT7IcDve9/ 9R6zOS49CBLnAkVHEyx2YRUeY8n4MFL55a+6+F4wAD2BXBkqB0vGurw+7d1zAiHfkTQfrYsKEX FFWmNf7tSSr4YvyVezcydS94z3Z+iYyHQ3WhDmTyj0ASvw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (wout1-smtp.messagingengine.com) smtp.remote-ip=64.147.123.24; dkim=pass header.d=daniel.shahaf.name header.s=fm3 header.a=rsa-sha256; dkim=pass header.d=messagingengine.com header.s=fm2 header.a=rsa-sha256; dmarc=none header.from=daniel.shahaf.name; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1620742464; bh=8ub1chZ5QlxGTg5KCk1JJ/pHCWYmA/QKoJuwyvYUUoA=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:Subject:To:From:Date: References:In-Reply-To:Message-ID:MIME-Version:DKIM-Signature: DKIM-Signature:DKIM-Signature; b=E21/IVlQVtNWboB74ZCMiXUywCct3bhVg1/cqQY29Yk9zTKWDgZy628U7v4ppDBG+/sEhI83jd BTZnwgLx4/HpyGaDarapuA90o0UPh14e2XE5DjxmvJPubfPM4mikjn+w/BNFuprx1I8ZDaiLqV FIBjWc7d1Ih24u5anTu4X2FHEQVVErxybq1VaK2lOLK7JYvbVvm4uJq70dTZYWmhrVC3shPn7+ lc3iPJJuX5p4yCUwRjiQq+2HvNfA75WS5WrhKUvfYWY3IL9onfbD2yk1uvhcQDjXc3cfMupjQG MTpuoDWx+uyt4USPe3jB25miG6czK6bAzmFVkZriAv1vww==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Transfer-Encoding: Content-Type:Subject:To:From:Date:References:In-Reply-To:Message-Id: Mime-Version:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=Pev8OfcjQXYk+Rvwnn82VK1k+R/JOHg8iftYrdYTr4s=; b=VwXsV4pumrozCDWYZlUZnBaIs6 Rp5w7kZLNgjoZoMnoJU30kA1tXMkqB83C5FUxg8hQw9IvL7Qjvhg/M+G6eKmrYp5JrIIXM4X3Ee6z 7W4NQWaaiCUGy7LK8/X08sr82S+KudEe2g7aWW2xq05MDq/7xllJ6NfwWvG0tLg/AZRDNAnHCCTNl PbuxzPpVIXhYfZ2WdTKZ2FD9XVbaYWjVCBWwC5HzxIIl7+b9GcV9XkfC4McZMQ69T0pun21nAONl9 9JEwL0mLuWZ/odv5JoFo6didWe1zYuI5FaYdEQxfc8maB/UbOnetk5ADNQuBk/tumJuy7PYuLC4Vd Il3y5dWw==; Received: from authenticated user by zero.zsh.org with local id 1lgT9S-000BzV-5s; Tue, 11 May 2021 14:14:22 +0000 Authentication-Results: zsh.org; iprev=pass (wout1-smtp.messagingengine.com) smtp.remote-ip=64.147.123.24; dkim=pass header.d=daniel.shahaf.name header.s=fm3 header.a=rsa-sha256; dkim=pass header.d=messagingengine.com header.s=fm2 header.a=rsa-sha256; dmarc=none header.from=daniel.shahaf.name; arc=none Received: from wout1-smtp.messagingengine.com ([64.147.123.24]:46655) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1lgT8m-000BH7-Aa; Tue, 11 May 2021 14:13:41 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 1DA8611C4; Tue, 11 May 2021 10:13:21 -0400 (EDT) Received: from imap37 ([10.202.2.87]) by compute3.internal (MEProxy); Tue, 11 May 2021 10:13:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= daniel.shahaf.name; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type :content-transfer-encoding; s=fm3; bh=Pev8OfcjQXYk+Rvwnn82VK1k+R /JOHg8iftYrdYTr4s=; b=ZK1qI6J/C61QxXHMc8vKSpXKSfZinP1DqAooa9qDB0 keEDmxaNrK3qgNIOCsCbPUHCxdTuHIi1Oc69drMQ7uLbAYqzcIOyNPDZcplZAvR2 3qIqM1HHsFFx45B/4IEUlZ5VHXwwraB3LxdHqHnZ4rpsLyaEi6GRF4H1jPd1gaI6 jcfpjxdvesojAoIDqJXdn3U1y0C5NQBQnIAS2Q5y5po2J39nCGCri5qsdohf950z b4emTh2W/hCqpz0uQHuMdFLa4Q1CL29WaA4rF9wWYhBR03/L6ysPB8eu1zhzXno+ Z1CPuq8SjG6FvCMCKT6iL3WG9VbUJ8FGddhpO0lyyhqg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=Pev8OfcjQXYk+Rvwnn82VK1k+R/JOHg8iftYrdYTr 4s=; b=T16+WpDwKqJTbnuqEgDW065n7/aUpmwmoVKgH4jPi4IJjY+s1fq923r7w uhUuj3WsjSHxZCVVCq8Omzr0rXKPGeeqlWrWYDEuvRvLMAo8DIoeq5XxIGb0Ash9 xN4nW85sS/aqe6AxDiwM/BpGXETUgWg3OI3D47hVATA+9CYmR38yFABrHFgzYPhB qZdSOioZiPayPORbiCvWmS0Va8P/fO1AaipnVawEb0g5XX/BxtV7728EN+3OnmsG 5W+mBuLAaAdsctiQ6nz0ozES3RfkjeTGv5AfjJ5cfXBXsT2n0ZC7DkO4KNw8+9k4 Yah9f4jGMAejJSJ+w8GAKMWxW9x+A== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrvdehtddgjeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtgfesth hqredtreerjeenucfhrhhomhepfdffrghnihgvlhcuufhhrghhrghffdcuoegurdhssegu rghnihgvlhdrshhhrghhrghfrdhnrghmvgeqnecuggftrfgrthhtvghrnhepfefhkeefve eileelheeiffdtkedujeelvdfhtdejtdeggedvuefffeelhefhvdfgnecuvehluhhsthgv rhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepugdrshesuggrnhhivghlrd hshhgrhhgrfhdrnhgrmhgv X-ME-Proxy: Received: by mailuser.nyi.internal (Postfix, from userid 501) id F1E0E6B40067; Tue, 11 May 2021 10:13:19 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.5.0-alpha0-448-gae190416c7-fm-20210505.004-gae190416 Mime-Version: 1.0 Message-Id: <27484ec7-fc56-4164-b9b6-edfb62df0514@www.fastmail.com> In-Reply-To: References: Date: Tue, 11 May 2021 14:12:59 +0000 From: "Daniel Shahaf" To: "Philippe Proulx" , zsh-users@zsh.org Subject: =?UTF-8?Q?Re:_How_to_complete_with_=5Farguments()_depending_on_an_option?= =?UTF-8?Q?_and_within_a_loop?= Content-Type: text/plain;charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Seq: 26724 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Philippe Proulx wrote on Mon, 10 May 2021 17:30 +00:00: > $ prog --state=3Dfoo --meow --state=3Dbar cola --mix --lol=3D34 \ > --state=3Dfoo --meow --zoom >=20 > In a Zsh completion script, how would you complete the options above, > knowing that: =E2=8B=AE > I managed to implement such a completion script "manually", with the > `words` and `CURRENT` variables, compset(), and _describe() to add > completions. It works, but I feel like I'm rewriting parts of > _arguments(). >=20 > Is there a known way to achieve this mostly with _arguments()? Look at _beep. It does basically what you're describing, and does use _arguments for the core logic. I'd go for something along the lines of: _prog() { local -a args=3D( --state=3D': :(foo bar)' ) if ((CURRENT > 1)); then case ${words[(Ib.CURRENT-1.)--state=3D*]} in (*=3Dfoo) args+=3D( -meow -zoom );; (*=3Dbar) args+=3D( --mix --lol :cola );; esac fi (munge $words as _beep does) _arguments : "${args[@]}" } Cheers, Daniel