From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1241 invoked by alias); 17 Jan 2016 15:22:14 -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: X-Seq: 37656 Received: (qmail 10685 invoked from network); 17 Jan 2016 15:22:12 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=Cz1KWimOYWM8MsvT86si9Kt7/2GE5mtxiTdk81hILwE=; b=vd4SmlOP7hvZjCAQBIKeNiJ0mtDHnfnW9mnGfLgGw7lnHaWp+wgDyGN6snfNnpno5y gUMHjPjwJvSHV4D4uAIhobXNxftZy0aDxSzWXfoeuDa1p+RfMCSeV/cajMrChZ+izTvt Q1S5KTP7/4RiyU77ILLSedPzbvrHCn5kkqUPNvoXcsgQD9DfL+OBAcvZmxO3l/r+xR4F 5tVMLnrS6VN5T7Dh/qGJoKKD7phrjCJPdOc6XrpHoohkG6oVNK0anLvD9S5WhLNp5v3E ECDTApxUwB36TN1lbLsVJqUY3CmugBWwtK0dcNqUGctap+5PS466o10+HZzY4JeZAzYX o6TA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=Cz1KWimOYWM8MsvT86si9Kt7/2GE5mtxiTdk81hILwE=; b=ksMQji9EbdhITqNMgHcyle62Kl4y0iYj5k1F+v9N3HNJzY9id77P/lWqKgUxsre6Nc npgl7l+oy6MCMW5c5aV4ijqFypsHYP2a4kPbMjK9TBR8CJL30uE+XMnRBDH0RE8q9tvD ebhdAFOgWCi9P2db444xqw/QQd+iq4cnIEU8YfmBLADKTD3pbwivWmX9TdcNJ0o/UeFT ymXXvCkertRC63DigoXpRmkF54eZKWgLzx5hysUyzRBrTO+2UewhoO3mLds1ZgLW3zmz ++fje7ZZEiw2Rqpf5lxTjGeGPVBK8GzDEfVVO06MdYdvcTOeiW8yTBroqWsgwwvEDnJ1 3ApA== X-Gm-Message-State: ALoCoQmJyLdqhQj0uRs/PxSXII34XJDQ7WCvl8a0NUGcCsfbDoztNgrn0Hs9GMHNToaucs1i2fWizOuBFEZg0TSIeVKWLZB2XA== X-Received: by 10.112.13.99 with SMTP id g3mr6492539lbc.86.1453044128505; Sun, 17 Jan 2016 07:22:08 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <160116145505.ZM6664@torch.brasslantern.com> References: <160116145505.ZM6664@torch.brasslantern.com> From: Sebastian Gniazdowski Date: Sun, 17 Jan 2016 16:21:48 +0100 Message-ID: Subject: Re: compadd -Q -U completes $(( without inserting upon it To: Bart Schaefer Cc: Zsh hackers list Content-Type: multipart/mixed; boundary=001a11c39fe61fd7fd05298933b8 --001a11c39fe61fd7fd05298933b8 Content-Type: text/plain; charset=UTF-8 On 16 January 2016 at 23:55, Bart Schaefer wrote: > B) Don't invoke completion directly; instead, invoke a normal editing > widget to modify the buffer so the tokens do not begin a context, then > call the completion widget, and finally clean up the buffer again when > the completion widget returns. I went this path and it was quite easy. I have zew-complete-shell-word widget (attached) that does a simple grep: __zew_csw_found=( "${(@M)historywords:#(#i)$__zew_csw_left*$__zew_csw_right}" ) then zle -M displays the results and Alt-h/H navigates among them. One minute video: https://asciinema.org/a/9smut3m7l6njvwfhrkfb6emdp > The unfortunate bit of (B) > is that it can't work at all as a completer function (zstyle element). So no automatic multi-column zle -M, no actual highlighting (tried to pass ANSI codes to zle -M but it doesn't process them), no zstyles that configure pagination etc. These are the drawbacks? All this is in the queue to implement, e.g. I currently display LINES / 3 matches and there is no access to matches beyond that. Code is at: https://github.com/psprint/zsh-editing-workbench/blob/master/zew-complete-shell-word only 74 lines for a robust _history_complete_older Thanks, Sebastian Gniazdowski --001a11c39fe61fd7fd05298933b8 Content-Type: application/octet-stream; name=zew-complete-shell-word Content-Disposition: attachment; filename=zew-complete-shell-word Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijiorfji0 ZW11bGF0ZSAtTFIgenNoCnNldG9wdCB0eXBlc2V0c2lsZW50IGV4dGVuZGVkZ2xvYiBub3Nob3J0 bG9vcHMKCiMgUHJlcGFyZSBvdXRwdXQgdmFyaWFibGVzIGZvciB6ZXctcHJvY2Vzcy1idWZmZXIK bG9jYWwgWkVXX1BCX1dPUkRTIFpFV19QQl9XT1JEU19CRUdJTk5JTkdTIFpFV19QQl9TUEFDRVMg CmxvY2FsIFpFV19QQl9TRUxFQ1RFRF9XT1JEIFpFV19QQl9MRUZUIFpFV19QQl9SSUdIVAoKYXV0 b2xvYWQgemV3LXByb2Nlc3MtYnVmZmVyCnpldy1wcm9jZXNzLWJ1ZmZlciAiJEJVRkZFUiIKCnR5 cGVzZXQgLWcgX196ZXdfY3N3X2luZGV4IF9femV3X2Nzd19sZWZ0IF9femV3X2Nzd19yaWdodAp0 eXBlc2V0IC1nYSBfX3pld19jc3dfZm91bmQKX196ZXdfY3N3X2ZvdW5kPSggIiRyZXBseVtAXSIg KQoKIyBDb25zZWN1dGl2ZSBjYWxsPwppZiBbICIke1dJREdFVCUtYmFja3dhcmRzfSIgPSAiJHtM QVNUV0lER0VUJS1iYWNrd2FyZHN9IiBdOyB0aGVuCiAgICBpZiBbWyAiJFdJREdFVCIgIT0gKi1i YWNrd2FyZHMgXV07IHRoZW4KICAgICAgICAoKCBfX3pld19jc3dfaW5kZXggKysgKSkKICAgIGVs c2UKICAgICAgICAoKCBfX3pld19jc3dfaW5kZXggLS0gKSkKICAgIGZpCmVsc2UKICAgIGlmIFtb ICIkV0lER0VUIiAhPSAqLWJhY2t3YXJkcyBdXTsgdGhlbgogICAgICAgIF9femV3X2Nzd19pbmRl eD0iMSIKICAgIGVsc2UKICAgICAgICAjIFdpbGwgZ2V0IGNoYW5nZWQgaW50byAkdG9fZGlzcGxh eSBsaW1pdAogICAgICAgIF9femV3X2Nzd19pbmRleD0iMCIKICAgIGZpCiAgICBfX3pld19jc3df bGVmdD0iJFpFV19QQl9MRUZUIgogICAgX196ZXdfY3N3X3JpZ2h0PSIkWkVXX1BCX1JJR0hUIgog ICAgX196ZXdfY3N3X2ZvdW5kPSggKQpmaQoKIyBGaW5kIGhpc3Rvcnkgd29yZHMgbWF0Y2hpbmcg JGxlZnQgLi4uICRyaWdodAppZiBbICIkI19femV3X2Nzd19mb3VuZCIgLWVxICIwIiBdOyB0aGVu CiAgICB0eXBlc2V0IC1VIF9femV3X2Nzd19mb3VuZAogICAgcmVwZWF0IDE7IGRvCiAgICAgICAg X196ZXdfY3N3X2ZvdW5kPSggIiR7KEBNKWhpc3Rvcnl3b3JkczojKCNpKSRfX3pld19jc3dfbGVm dCokX196ZXdfY3N3X3JpZ2h0fSIgKQogICAgICAgICMgUmVtZW1iZXIgZm9yIGNvbnNlY3V0aXZl IGNhbGxzCiAgICAgICAgcmVwbHk9KCAiJF9femV3X2Nzd19mb3VuZFtAXSIgKQogICAgZG9uZQpm aQoKIyBHdWFyZCB2YWx1ZXMgb2YgdGhlIGluZGV4CmludGVnZXIgdG9fZGlzcGxheT0kKCggTElO RVMgLyAyICkpClsgIiR0b19kaXNwbGF5IiAtZ3QgIiQjX196ZXdfY3N3X2ZvdW5kIiBdICYmIHRv X2Rpc3BsYXk9IiQjX196ZXdfY3N3X2ZvdW5kIgpbICIkX196ZXdfY3N3X2luZGV4IiAtbGUgMCBd ICYmIF9femV3X2Nzd19pbmRleD0iJHRvX2Rpc3BsYXkiClsgIiRfX3pld19jc3dfaW5kZXgiIC1n dCAiJHRvX2Rpc3BsYXkiIF0gJiYgX196ZXdfY3N3X2luZGV4PTEKCiMgRGlzcGxheSBtYXRjaGVz CnR5cGVzZXQgLWEgZGlzcF9saXN0CmRpc3BfbGlzdD0oICIkeyhAKV9femV3X2Nzd19mb3VuZFsx LHRvX2Rpc3BsYXldfSIgKQpkaXNwX2xpc3RbX196ZXdfY3N3X2luZGV4XT0iPiAke2Rpc3BfbGlz dFtfX3pld19jc3dfaW5kZXhdfSA8Igp6bGUgLU0gLS0gIiR7KEYpZGlzcF9saXN0fSIKCiMgUmVn ZW5lcmF0ZSBjb21tYW5kIGxpbmUKYnVmPSIiCmludGVnZXIgbndvcmRzPSIkeyNaRVdfUEJfV09S RFN9IgppbnRlZ2VyIG5ld2N1cnNvcj0wCmZvciAoKCBpPTE7IGk8PW53b3JkczsgaSsrICkpOyBk bwogICAgaWYgWyAiJGkiID0gIiRaRVdfUEJfU0VMRUNURURfV09SRCIgXTsgdGhlbgogICAgICAg IGJ1Zis9IiR7WkVXX1BCX1NQQUNFU1tpXX0ke19femV3X2Nzd19mb3VuZFtfX3pld19jc3dfaW5k ZXhdfSIKICAgICAgICBuZXdjdXJzb3I9IiQjYnVmIgogICAgZWxzZQogICAgICAgIGJ1Zis9IiR7 WkVXX1BCX1NQQUNFU1tpXX0ke1pFV19QQl9XT1JEU1tpXX0iCiAgICBmaQpkb25lCgojIFNldCBj b21tYW5kIGxpbmUKQlVGRkVSPSIkYnVmIgojIE1vdmUgY3Vyc29yIHRvIHRoZSBlbmQgb2Ygd29y ZApDVVJTT1I9IiRuZXdjdXJzb3IiCgojIHZpbTpmdD16c2gK --001a11c39fe61fd7fd05298933b8 Content-Type: application/octet-stream; name=zew-process-buffer Content-Disposition: attachment; filename=zew-process-buffer Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijiorfk11 IyBJbnB1dDoKIyAkMSAtIGJ1ZmZlciB0byBwcm9jZXNzCiMKIyBPdXRwdXQ6CiMgWkVXX1BCX1dP UkRTIC0gc3BsaXQgb2YgIiQxIiBpbnRvIHNoZWxsIHdvcmRzOyBhcnJheQojIFpFV19QQl9XT1JE U19CRUdJTk5JTkdTIC0gaW5kZXhlcyBvZiBmaXJzdCBsZXR0ZXJzIG9mIGNvcnJlc3BvbmRpbmcg WkVXX1BCX1dPUkRTIGluIFpFV19QQl9XT1JEUwojIFpFV19QQl9TUEFDRVMgLSB3aGl0ZSBzcGFj ZXMgYmVmb3JlIGNvcnJlc3BvbmRpbmcgWkVXX1BCX1dPUkRTIGluIFpFV19QQl9XT1JEUwojIFpF V19QQl9TRUxFQ1RFRF9XT1JEIC0gaW5kZXggaW4gWkVXX1BCX1dPUkRTIHBvaW50aW5nIHRvIHdv cmQgYWN0aXZhdGVkIGJ5IENVUlNPUiBwb3NpdGlvbgojIFpFV19QQl9MRUZUIC0gbGVmdCBwYXJ0 IG9mIGFjdGl2ZSB3b3JkCiMgWkVXX1BCX1JJR0hUIC0gcmlnaHQgcGFydCBvZiBhY3RpdmUgd29y ZAojCgplbXVsYXRlIC1MUiB6c2gKc2V0b3B0IHR5cGVzZXRzaWxlbnQgZXh0ZW5kZWRnbG9iIG5v c2hvcnRsb29wcwoKbG9jYWwgTUJFR0lOIE1FTkQgTUFUQ0ggbWJlZ2luIG1lbmQgbWF0Y2gKCmxv Y2FsIGJ1Zj0iJDEiClpFV19QQl9XT1JEUz0oICIkeyhaK24rKUJVRkZFUn0iICkKWkVXX1BCX1NQ QUNFUz0oICkKWkVXX1BCX1dPUkRTX0JFR0lOTklOR1M9KCApClpFV19QQl9TRUxFQ1RFRF9XT1JE PSItMSIKCmludGVnZXIgbndvcmRzPSIkeyNaRVdfUEJfV09SRFN9IgoKIyBSZW1vdmUgWkVXX1BC X1dPUkRTIG9uZSBieSBvbmUsIGNvdW50aW5nIGNoYXJhY3RlcnMsCiMgY29tcHV0aW5nIGJlZ2lu bmluZyBvZiBlYWNoIHdvcmQsIHRvIGZpbmQKIyBwbGFjZSB0byBicmVhayB0aGUgd29yZCBpbnRv IDIgaGFsdmVzIChmb3IKIyBjb21wbGV0ZV9pbl93b3JkIG9wdGlvbikKCmxvY2FsIGkgd29yZApp bnRlZ2VyIGNoYXJfY291bnQ9MAoKIyAoWikgaGFuZGxlcyBzcGFjZXMgbmljZWx5LCBidXQgd2Ug bmVlZCB0aGVtIGZvciB0aGUgdXNlcgojIEFsc28gY29tcHV0ZSB3b3JkcyBiZWdpbm5pbmdzIGFu ZCB0aGUgc2VsZWN0ZWQgd29yZApmb3IgKCggaT0xOyBpPD1ud29yZHM7IGkrKyApKTsgZG8KICAg ICMgUmVtb3ZlIHNwdXJpb3VzIHNwYWNlIGdlbmVyYXRlZCBieSBaLWZsYWcgd2hlbgogICAgIyBp bnB1dCBpcyBhbiB1bmJvdW5kICckKCcgKGhhcHBlbnMgd2l0aCB6c2ggPCA1LjEpCiAgICAjIGFu ZCBhbHNvIHJlYWwgc3BhY2VzIGdhdGhlcmVkIGJ5IGFuIHVuYm91bmQgJyQoJywKICAgICMgdG8g aGFuZGxlIHRoZW0gaW4gYSB3YXkgbm9ybWFsIHRvIHRoaXMgbG9vcAogICAgWkVXX1BCX1dPUkRT W2ldPSIke1pFV19QQl9XT1JEU1tpXSUlICMjfSIKICAgIHdvcmQ9IiR7WkVXX1BCX1dPUkRTW2ld fSIKCiAgICAjIEluIGdlbmVyYWwsICRidWYgY2FuIHN0YXJ0IHdpdGggd2hpdGUgc3BhY2VzCiAg ICAjIFdlIHdpbGwgbm90IHNlYXJjaCBmb3IgdGhlbSwgYnV0IGluc3RlYWQgZm9yCiAgICAjIGxl YWRpbmcgY2hhcmFjdGVyIG9mIGN1cnJlbnQgc2hlbGwgd29yZCwKICAgICMgbmVnYXRlZC4gVGhp cyBpcyBhbiBhbWJpdGlvbiB0byBjb21wbGV0ZWx5CiAgICAjIGF2b2lkIGNoYXJhY3RlciBjbGFz c2VzCgogICAgIyBSZW1vdmUgd2hpdGUgc3BhY2VzCiAgICBidWY9IiR7YnVmIyMoI20pW14kd29y ZFsxXV0jfSIKICAgICMgQ291bnQgdGhlbQogICAgY2hhcl9jb3VudD1jaGFyX2NvdW50KyIkI01B VENIIgogICAgIyBUaGlzIGlzIHRoZSBiZWdpbm5pbmcgb2YgY3VycmVudCB3b3JkCiAgICBaRVdf UEJfV09SRFNfQkVHSU5OSU5HU1tpXT0kKCggY2hhcl9jb3VudCArIDEgKSkKICAgICMgUmVtZW1i ZXIgdGhlIHNwYWNlcwogICAgWkVXX1BCX1NQQUNFU1tpXT0iJE1BVENIIgoKICAgICMgUmVtb3Zl IHRoZSB3b3JkCiAgICBNQVRDSD0iIgogICAgYnVmPSIke2J1ZiMoI20pJHdvcmR9IgoKICAgICMg SWYgc2hlbGwgd29yZCBub3QgZm91bmQsIHJldHVybi4gVGhpcyBzaG91ZGxuJ3QgaGFwcGVuCiAg ICBbIC16ICIkTUFUQ0giIF0gJiYgcmV0dXJuIDAKCiAgICAjIFNwYWNlcyBwb2ludCB0byBwcmV2 aW91cyBzaGVsbCB3b3JkCiAgICAjIFZpc3VhbCBjdXJzb3IgcmlnaHQgYWZ0ZXIgc3BhY2VzICgt Z2UpIC0+IG5vdCBlbm91Z2ggdG8gc2VsZWN0IHByZXZpb3VzIHdvcmQgKC1ndCByZXF1aXJlZCkK ICAgIFtbICIkWkVXX1BCX1NFTEVDVEVEX1dPUkQiIC1lcSAiLTEiICYmICIkY2hhcl9jb3VudCIg LWd0ICIkQ1VSU09SIiBdXSAmJiBaRVdfUEJfU0VMRUNURURfV09SRD0kKCggaS0xICkpCgogICAg IyBBY3R1YWwgY2hhcmFjdGVycyBwb2ludCB0byBjdXJyZW50IHNoZWxsIHdvcmQKICAgICMgVmlz dWFsIGN1cnNvciByaWdodCBhZnRlciBsZXR0ZXJzICgtZ2UpIC0+IGVub3VnaCB0byBzZWxlY3Qg Y3VycmVudCB3b3JkCiAgICBjaGFyX2NvdW50PWNoYXJfY291bnQrIiQjd29yZCIKICAgIFtbICIk WkVXX1BCX1NFTEVDVEVEX1dPUkQiIC1lcSAiLTEiICYmICIkY2hhcl9jb3VudCIgLWdlICIkQ1VS U09SIiBdXSAmJiBaRVdfUEJfU0VMRUNURURfV09SRD0iJGkiCmRvbmUgCgojIFdoYXQncyBsZWZ0 IGluICRidWYgY2FuIGJlIG9ubHkgd2hpdGUgc3BhY2VzCmNoYXJfY291bnQ9Y2hhcl9jb3VudCsi JCNidWYiClpFV19QQl9TUEFDRVNbaV09IiRidWYiCgojIFZpc3VhbCBjdXJzb3IgcmlnaHQgYWZ0 ZXIgc3BhY2VzICgtZ2UpIC0+IGVub3VnaCB0byBzZWxlY3QgbGFzdCB3b3JkCltbICIkWkVXX1BC X1NFTEVDVEVEX1dPUkQiIC1lcSAiLTEiICYmICIkY2hhcl9jb3VudCIgLWdlICIkQ1VSU09SIiBd XSAmJiBaRVdfUEJfU0VMRUNURURfV09SRD0kKCggaS0xICkpCgojIERpdmlkZSBhY3RpdmUgd29y ZCBpbnRvIHR3byBoYWx2ZXMKaW50ZWdlciBkaWZmPSQoKCBDVVJTT1IgLSBaRVdfUEJfV09SRFNf QkVHSU5OSU5HU1taRVdfUEJfU0VMRUNURURfV09SRF0gKyAxICkpCndvcmQ9IiR7WkVXX1BCX1dP UkRTW1pFV19QQl9TRUxFQ1RFRF9XT1JEXX0iClpFV19QQl9MRUZUPSIke3dvcmRbMSxkaWZmXX0i ClpFV19QQl9SSUdIVD0iJHt3b3JkW2RpZmYrMSwtMV19IgoKIyB2aW06ZnQ9enNoCg== --001a11c39fe61fd7fd05298933b8--