From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,FROM_EXCESS_BASE64,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id ee48f479 for ; Tue, 20 Aug 2019 17:46:42 +0000 (UTC) Received: (qmail 16926 invoked by alias); 20 Aug 2019 17:46:32 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 44694 Received: (qmail 2328 invoked by uid 1010); 20 Aug 2019 17:46:32 -0000 X-Qmail-Scanner-Diagnostics: from sonic307-54.consmr.mail.ir2.yahoo.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25545. spamassassin: 3.4.2. Clear:RC:0(87.248.110.31):SA:0(-2.0/5.0):. Processed in 2.586413 secs); 20 Aug 2019 17:46:32 -0000 X-Envelope-From: orel_jf@yahoo.fr X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _spf.mail.yahoo.com designates 87.248.110.31 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.fr; s=s2048; t=1566323150; bh=avz1Awd0LsVrywWaAdiPRFYnZ0NsEBxR5ZJHV+OXbIc=; h=To:Cc:References:From:Subject:Date:In-Reply-To:From:Subject; b=cOkW+vL6lf+0pJcCtLo/M0T02KQRwyIJTa98n++yczlIPbfXSNdPui5tbjEmvIsusFUy+Ca6eN9+2PUezd7/d9Ll5VFZjiPprfAj2bERDu/LPT66Ekn6BrbdtSqv9MozKlpBiujyvnIvH0gqxNR0mltRVMsQJyYqxMzhNKOMWKNy4e4j2/5to/D12646ipar2/Ahr34QMUKwk2IBxGGb3H7sTkmPGOwosj1qN13MXjFbdswaP+H3Y0m9IlL3MOg+Qdq2ZeciHnGNJksBEn6o7o4NomjKelo17dOCAAhJODiNPB9Qh/s8ulDK+tSsNTA5XzfupZlgRKv52NjvyIKwXQ== X-YMail-OSG: KN1.De4VM1nHya0GQ.9JkTdAgv7dR1SD8iOllk7eyaT5lvW4RI67dcO5_wSleUA e9FNS4HCk5LAFvpyLK9_M0vjokC4g9YKUsTVn_sviHnnA4SfGvEzaljCC7EC7G3opulDbmT21uD0 DJzHM06HAgS4nI0mT.ih5KAo2tO.WC3wQUNi_GUyybeJMKg7H2GJJzTnICk.nUsotdHJfIfdfnVw Voohwm5JytfZS1wZNt1TngCQ4w5vPjQLh7j8zAotIVjE0_LOHoh8CcfgMiXWFVI8DZucmmz8gDJ3 k_DO.Pjb9orR7HPUf6SiLc3L3LORlsSA8zQjpowioQStwoA5.BTM0RWBjg6xIVmuwAkPMcNHPxmr UDudr7Trgbo9DNxNWrhf2tDiwfB.fSO4uEEPk1r23qzOKO4g7EzLM8anknBTusny6xEMeCpu4e8j cbM7zLNq7Pr1DS3TWsxy00J1e6C6etymD6FFS6fS2XLEXpEmQDpt4v5QAcLZwTMRn61IwFuUvYlL x2tKiWiGH9GFInsyZeGrkQTLaET1UU9k1VQRpXimBaMOfdE2U6jVKdncjjcpGIl368ezKza3qGDw LTuhADRTdMUWnfUp4UvUJzpnqhzy3U6YisXp8u3XCoeK6r8uXhZfC.VYhtAOWvIn7qSPBSSjkM2_ 48U4coiA_v95ks7ryUv6jDM3xH9uYMgdCY5fcdJS9_15kqcv.GsXfMQBOao3i.L0rklup3Jnhm75 Ft.pTBswKNj.LEb8IrS8nv4ukh_B6Dr32tMuRCfdJtsfALhJ_gzdRe8zBY.PB1_isCNiW1M.03IJ Wo5nVEEidrEweJn_xpBhSaQSxL5jYTbduZWNUBBNijVQCzO3UHKDXRWulrD59JNNkrVB0KqcW_yl VHACayfpJh0mN4pEzwiXLSZMzpzkF4qKWP1O_Aw0w1twer4fq6Q5Zvhe4OmX8kffvjUZOjpk9tAt KvTgUMI0pTZBNJCxvrLYe.t2wZ8rxpffCVc.rkFpHNMycS3E1OJjl_4OQHcAXYKxoiQdXuzZuvmP rx11BIPGLEuNOa69qE0vnnXTAC2My0FvOVdLsxNr9UC26w8TKioDbH_Lmgwj1NQj5Slyw0jgJcsi aI7SsRIoNPonN1MonrBeh_3KwlJxuljYJr3EQ6RYV4EOx15xSB7PJ5cs41mJrZbuh52Cgy1yKyM4 qKmHAzs.oCnwq.KdQB1Xj2Ob4bR4Ty_KW6c4CgBWZ3BiiwFndOimMKzLb0N9nY4kcCEOql78.tZE jrwcg To: Daniel Shahaf , dana Cc: zsh-users References: <1e5195bb-3126-8d0c-8a6a-1f5a5fd2a6c0@yahoo.fr> <0618d7fc-5334-4e51-829a-8684a81744c1@www.fastmail.com> From: =?UTF-8?B?QXVyw6lsaWVu?= Openpgp: preference=signencrypt Autocrypt: addr=orel_jf@yahoo.fr; prefer-encrypt=mutual; keydata= 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 Subject: Re: help for writing GNU stow completion Message-ID: <558a3ff8-d6f1-9ab0-3387-a17ca5e0e75b@yahoo.fr> Date: Tue, 20 Aug 2019 19:45:47 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <0618d7fc-5334-4e51-829a-8684a81744c1@www.fastmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: fr-FR Content-Transfer-Encoding: 8bit Le 17/08/2019 ?? 19:53, Daniel Shahaf a ??crit??: > [moving to -workers@ since it's about an outstanding PR] > > Aur??lien wrote on Sat, 17 Aug 2019 07:51 +00:00: >> local stow_dir >> local -a stow_pkg_list >> >> eval set -A stow_dir $1 >> [[ -n $stow_dir ]] && stow_pkg_list=( $stow_dir/*(-/N:t) ) >> >> if [[ ${#stow_pkg_list} -gt 0 ]]; then >> _values -C "packages from $stow_dir" ${stow_pkg_list[@]} >> else >> _message "no packages found in $stow_dir" >> fi >> >> and the completion of parameters such as'$HOME' or'~/' works well ! >> >> I pushed my modifications on github. Thank you for the answers :-) > > Sorry, but I have to object to the PR as it stands. As I said, using > ??eval $1?? causes expressions on the command line to be evaluated > _when completion is attempted_. To me, that breaks the principle of > least surprise, and could lead to unexpected and undesired results. > Okay, I understand the idea, so I tried to change the function to this: __stow_complete_packages() { local stow_dir=${(Q)1} local -a stow_pkg_list=( $stow_dir/*(-/N:t) ) if [[ ${#stow_pkg_list} -gt 0 ]]; then _values -C "packages from $stow_dir" ${stow_pkg_list[@]} else _message "no packages found in $stow_dir" fi } But now if I do ?? stow --dir=$HOME/.dotfiles ??, I get ????no packages found in $HOME/.dotfiles????. Maybe I missed something??? > I would strongly prefer another solution, or to be corrected on my > interpretation that this violates least surprise. > > Also, I don't think it's ideal to have ??foo --opt=$ARG?? work and > ??bar --opt=$ARG?? not work. > To remove any ambiguity, I want to complete the stow packages stow --dir $HOME/.dotfiles _packages from /home/username/.dotfiles_ git myrepos nano nvim ranger rofi [???] And not the directories stow --dir $HOME/.dotfiles/ _directory_ git myrepos nano nvim ranger rofi [???] My initial goal was to get a completion of the same type as what password-store offers (see: line 127 at https://git.zx2c4.com/password-store/tree/src/completion/pass.zsh-completion). This is where the ????find???? in the first version of the script comes from. Naively, as a user, when I do ????stow --dir $HOME/.dotfiles ???? and the directory in question contains many subdirectories, if the completion does not offer any packages, it is surprising. Now, due to my limited experience in writing completion for zsh, I don't know what would be the least bad of the solutions. Thank you for your time. -- Aur??lien