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.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 13668 invoked from network); 31 Dec 2020 21:26:49 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 31 Dec 2020 21:26:49 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1609450009; b=LeeizOTIEfFehP68hoEdetZ7/fqB9v1uACzH0UOpjg2nl3sy0DGYRC+Vhv8I0dEaLC432BcW1y C0Y7mnI1RiKH02BeSOq5qBU8+Hgug8dbNT6e/zuw+fE0FeUBKA+Nx50eXbZF9rldYDRkVp+dgK sNUZRNNlYoT7mnq/jvbh/0gh5UqaCbTYnXxD61TjukIY/UazogD98dPgo+i3UKmv5KLerZygbz UisS4iG9z6/ka56uJfV4D6SVsVPqRc1av+6ShyhlQIAY0Y1f6zznhQK9NYKiJLTa50fYNY7Jtz WnlnMAS6s6fSkOrORm1WWrB+mT1I6UPm+2xhMEM557Sj1Q==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ot1-f46.google.com) smtp.remote-ip=209.85.210.46; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1609450009; bh=LZI9TadfjwzCJ05KWZKWDndt7s6TTRXjsDni8qZDVWA=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=VNt1Nb/M6x760sQ09k+9TKOf98kEqj1fLurpxTnmqs3/jo4LEqfgNcKclcZSWaTWY9GV5ai90i GhycCoM8rk3jWA5NT3f9SWuBZiHc1Gv4CwFfyaBwMQ0nRblvOH3Mit/N86Xnc9p3TOlT4Bb7hS 1wSN84ryVmc7dQ5adVd4LbQWUV28Nx/aB1rouD75v6qlKg+oIzJmaoNeIBMhJInvJrUywfJHA4 GfX49qr08jeszMlsK0Rfeq3UEURj76WJwbBssTqjBfixrHmCADTanVXunJOj7ixOIcrdqaXzA8 cXpb3UIZ+yuvpHiTKxk7s2ki0CBY7cNWh/GnddXYX6jCNQ==; 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-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=ZOKNzWskhGWQVFR4pwPtpVWyRDLrbaVJgVLV7JzxeJs=; b=X84iw1cls3DG47BfhuPdcmET0Z R6zoWDkFWxJzQVTBOHKN6KDKs7g+ZvKUVT/cL4ZNiotq+vJfBikT/dBh1nAiM3f3c6RR8sQquw3LK pt71pFaV6VDiqcu/PGYtPLw47D29FxdIOSjbOxrsxsRHmst+s2DorJLWEowN/YCgSIwkzYl5YL+5P wBEtPg4hTKittqzPpo7Tk/2iXLMsuAgV9pACuKw1xSd8XwWZZjkFMrx340WW6HAIyD2eLSwTsOANB 2C8jdiyWXKgvt1HimT1RmMXXFVySNdowMfjGsQbtLv/oHmQSx8VQ3tlc1u4mGZ+VJOipoSaUs8o8I XkCYRTIA==; Received: from authenticated user by zero.zsh.org with local id 1kv5T4-000LTW-7e; Thu, 31 Dec 2020 21:26:46 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ot1-f46.google.com) smtp.remote-ip=209.85.210.46; dkim=pass header.d=brasslantern-com.20150623.gappssmtp.com header.s=20150623 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ot1-f46.google.com ([209.85.210.46]:42643) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1kv5SK-000L6E-CT; Thu, 31 Dec 2020 21:26:01 +0000 Received: by mail-ot1-f46.google.com with SMTP id 11so18874226oty.9 for ; Thu, 31 Dec 2020 13:25:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ZOKNzWskhGWQVFR4pwPtpVWyRDLrbaVJgVLV7JzxeJs=; b=TRJy7GEcKPu4yj5aJD9oK4PEwCdimbjZTJcRFpxfcvQHbACHNJa2zpRt5MmtoZJF9X B7ZQdLRgVxSMhAMjLysSbJISo169d4UgdE4O6HVVKBZMRXfDH9GJTDtySiwgDH+Q6YGO aW7AUvnLmmVFDxkarabkuYd1OOb8JgX0DwVix56aJEAbiNm8XwdEaq5Z/u8PjgMi1XfG WQfd/5Fm8IopmD+uALYzYYaFiVArGMVUfLkgHwpo90ZUVUcfZool2B9tIWalv3CoCfYz k0pJpI3Ca+yP+G+olr5slRqWrlhS4tbc0OZ3Q+LzBmxR38R+hFMcAo5ao5XBRVoJP1+b OAQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ZOKNzWskhGWQVFR4pwPtpVWyRDLrbaVJgVLV7JzxeJs=; b=TR+ieOg4s5rqAxC7I5QBiCszk0Kign4M9aObHfjPM9gdWWK+pcZ7R01U38PYgsaq75 XSfuCS5sYdpMQVT/4va1vTSW1vYkQ1F40iyTRHhJkPQdMiuYeUcZkKESX+3AX1v/uLru A5FLDevL8LWz3gpdFZFO5ShqK2+ObC/7TbaeuEH/6j1xFlsrUJcYv/x6D8dt6Ll0szhG gYZbamE2wTZIqhGbRkwCT2bQUyr0hxdRPKx6LW8pSJmxvucyrC636XQoqwEvGBsyR9od vMfiDv5A5k7bwvImVDcLfalms6Txku3fJYnX1UQVteFveOHFZW/3LX0ZkhCzBvhQU2Pk OPlg== X-Gm-Message-State: AOAM533DQd3jeYLMMB8DGrGEWPWj9TRwcF8y1PgqcB7HQSlHYyNJPCfq p2dTHptN4VOe1+HsbDog7MIP/Rbhc+g93aBkrQRPLg== X-Google-Smtp-Source: ABdhPJz8MK/tax/XhZjzOayYNMWjsRXrC+JEEDUs80vwuR62L+j19tyfjdLisoPFex5TFRpES9awpuc6PdXcbh4Rni8= X-Received: by 2002:a9d:208a:: with SMTP id x10mr42373365ota.260.1609449958549; Thu, 31 Dec 2020 13:25:58 -0800 (PST) MIME-Version: 1.0 References: <819ec6fe-5af2-2e97-c5bb-f434b1de86d7@eastlink.ca> <520ce98a-4394-726d-3d12-8ef414e881c9@eastlink.ca> In-Reply-To: From: Bart Schaefer Date: Thu, 31 Dec 2020 13:25:47 -0800 Message-ID: Subject: Re: completion within a function To: Felipe Contreras Cc: Zsh Users Content-Type: multipart/mixed; boundary="00000000000010ab1205b7c945dc" X-Seq: 26288 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: Archived-At: --00000000000010ab1205b7c945dc Content-Type: text/plain; charset="UTF-8" On Wed, Dec 30, 2020 at 5:04 PM Felipe Contreras wrote: > > With that I do see the output. There's some garbage in it, but it works. I'm curious what the garbage is? Maybe something needs redirection. Attached (to prevent gmail line wrapping) is a still-fragmentary and undocumented source-able implementation. * It works better to discard compstate[vared] than to muck with _comps[-vared-] * Uses a restricted keymap to avoid messing with the main keymap. * Some names "protected" with double-underscore as in zed. * Included a debug function although it's a bit knobbly. At an interactive command-line, you can type e.g. run-complete git -- to see what the completion might be. I wonder about attaching this to something ala run-help. However, that doesn't work if output is redirected anywhere. If you want to pipe it or put it in a command substitution, you have to use e.g. complete git -- | less or guesses=( $(complete git --) ) Also, each word has to be individually quoted, you won't get useful results from complete "git --" --00000000000010ab1205b7c945dc Content-Type: text/plain; charset="US-ASCII"; name="complete.txt" Content-Disposition: attachment; filename="complete.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kjdcht7n0 I2F1dG9sb2FkCgooKCAkK19jb21wcyApKSB8fCB7IGF1dG9sb2FkIC1VIGNvbXBpbml0OyBjb21w aW5pdCAtaSAtRCB9Cnptb2Rsb2FkIHpzaC96cHR5CgppZiAhIGJpbmRrZXkgLU0gX19jb21wbGV0 ZSAyPi9kZXYvbnVsbAp0aGVuCiAgYmluZGtleSAtTiBfX2NvbXBsZXRlCiAgCiAgemxlIC1DIF9f Y29tcGxldGVfYWxsIGNvbXBsZXRlLXdvcmQgX2dlbmVyaWMKICB6c3R5bGUgJzpjb21wbGV0aW9u Ol9fY29tcGxldGVfYWxsOjo6OicgY29tcGxldGVyIF9hbGxfbWF0Y2hlcyBfY29tcGxldGUKICB6 c3R5bGUgJzpjb21wbGV0aW9uOl9fY29tcGxldGVfYWxsOionIGluc2VydCB0cnVlCgogIGJpbmRr ZXkgLU0gX19jb21wbGV0ZSAnXlhhJyBfX2NvbXBsZXRlX2FsbAogICMgYmluZGtleSAtTSBfX2Nv bXBsZXRlICdeWD8nIF9jb21wbGV0ZV9kZWJ1ZwogIGJpbmRrZXkgLU0gX19jb21wbGV0ZSAkJ1xu JyAuYWNjZXB0LWxpbmUKICAjIGJpbmRrZXkgLU0gX19jb21wbGV0ZSAnXkcnIC5zZW5kLWJyZWFr CgogIF9faW5pdF9jb21wbGV0ZSgpIHsgemxlIC1VICQnXEN4YVxuJyB9CiAgemxlIC1OIF9faW5p dF9jb21wbGV0ZQpmaQoKY29tcGxldGlvbi1jb250ZXh0KCkgewogIGlmICgoIGRlYnVnICkpOyB0 aGVuCiAgICBwcmludCAtdSAkZGVidWcgLUMgMiAtYSAtciBcCiAgICBDT05URVhUOiAiOmNvbXBs ZXRpb246JGN1cmNvbnRleHQiIFwKICAgIFNUQVRFOiAnJyAiJHsoQGt2KWNvbXBzdGF0ZX0iCiAg ZmkKfQpoaWRlLXZhcmVkKCkgeyBjb21wc3RhdGVbdmFyZWRdPScnIH0KCnJ1bi1jb21wbGV0ZSAo KSB7CiAgbG9jYWwgLWEgY29tcHByZWZ1bmNzPShoaWRlLXZhcmVkICIkeyhAKWNvbXBwcmVmdW5j c30iKQogIHZhcmVkIC1NIF9fY29tcGxldGUgLWkgX19pbml0X2NvbXBsZXRlICR7JHthcmd2Oith cmd2fTotcmVwbHl9Cn0KCmRlYnVnLWNvbXBsZXRlKCkgewogIGxvY2FsIC1pIGRlYnVnCiAgbG9j YWwgLWEgY29tcHByZWZ1bmNzPShjb21wbGV0aW9uLWNvbnRleHQgIiR7KEApY29tcHByZWZ1bmNz fSIpCiAgbG9jYWwgLWEgY29tcHBvc3RmdW5jcz0oIiR7KEApY29tcHBvc3RmdW5jc30iIGNvbXBs ZXRpb24tY29udGV4dCkKICBleGVjIHtkZWJ1Z30+JjIKICBjb21wbGV0ZSAiJEAiCiAgZXhlYyB7 ZGVidWd9PiYtCn0KCmNvbXBsZXRlKCkgewogIGxvY2FsIC1hIHJlcGx5PSggIiRAIiApCiAgenB0 eSBjb21wbGV0ZS10dHkgcnVuLWNvbXBsZXRlCiAgeyB6cHR5IC1yIGNvbXBsZXRlLXR0eSB9IGFs d2F5cyB7IHpwdHkgLWQgY29tcGxldGUtdHR5IH0KfQoKKCggQVJHQyApKSAmJiBjb21wbGV0ZSAi JEAiCg== --00000000000010ab1205b7c945dc--