Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm
Precedence: bulk
X-No-Archive: yes
List-Id: Zsh Workers List <zsh-workers.zsh.org>
List-Post: <mailto:zsh-workers@zsh.org>
List-Help: <mailto:zsh-workers-help@zsh.org>
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: <CAKc7PVAGtkxB=QU8W_Uvy7msDqh82W-q78Cwp4uqW0op-VztxA@mail.gmail.com>
 <160116145505.ZM6664@torch.brasslantern.com>
From: Sebastian Gniazdowski <sgniazdowski@gmail.com>
Date: Sun, 17 Jan 2016 16:21:48 +0100
Message-ID: <CAKc7PVCfvBb6pxRAo=HnLuBLT++QAy4GhMZiepq9QAMPh9a2eg@mail.gmail.com>
Subject: Re: compadd -Q -U completes $(( without inserting upon it
To: Bart Schaefer <schaefer@brasslantern.com>
Cc: Zsh hackers list <zsh-workers@zsh.org>
Content-Type: multipart/mixed; boundary=001a11c39fe61fd7fd05298933b8
X-Seq: zsh-workers 37656

--001a11c39fe61fd7fd05298933b8
Content-Type: text/plain; charset=UTF-8

On 16 January 2016 at 23:55, Bart Schaefer <schaefer@brasslantern.com> 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--

