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,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 417c79f1 for ; Tue, 4 Jun 2019 22:03:06 +0000 (UTC) Received: (qmail 22076 invoked by alias); 4 Jun 2019 22:02:44 -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: 44393 Received: (qmail 26241 invoked by uid 1010); 4 Jun 2019 22:02:44 -0000 X-Qmail-Scanner-Diagnostics: from mail-ot1-f68.google.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.101.2/25468. spamassassin: 3.4.2. Clear:RC:0(209.85.210.68):SA:0(-2.0/5.0):. Processed in 1.327107 secs); 04 Jun 2019 22:02:44 -0000 X-Envelope-From: sgniazdowski@gmail.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: pass (ns1.primenet.com.au: SPF record at _netblocks.google.com designates 209.85.210.68 as permitted sender) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=aK47ntPJ5YxGATb15CfIIST3NtiMFm/YUQ7o1E2E7Mg=; b=I+P8V7F7XUHaihz6u+SV7Ij8+UDq8L7WSK3/6TqGoENxf0fKmFrDhIJK2aPowP74Bp k7fnV2mVq8EbjV7/vPoOh6ks5E8ca66FQDesPGmoCG4TKsYcArDKUx7/fTuXrFrveIkq wfgSYg+h06wXOzGPeiDdVpFKOmn28H9xcWt+fs8WzC8z2m+axeTkPKe9mqCIUBBhA6Dh ZWjRNknmhFVhUbP9aLgRPK1Lr1wSHuFJzWbRrWD1Hal3eME9M12Advxts5kVg4jN5X91 V9TROyZtXHZf1SxZtJP8CLIXZXMYCNLuS0C2vt1Fo6H4iAYAgX19ZLd/yfdtf9JKLIWf fF4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=aK47ntPJ5YxGATb15CfIIST3NtiMFm/YUQ7o1E2E7Mg=; b=LRWXUMr/xpF0swZfPI9GCHFAe69QBdOy0oz/URe5Gy7NT4qOI4AMFf+wC4HrYXgL3U DEkEABbtsTLJVCsUgr70QnwPYK1YL3BSIs9FGSP65odAvdJ6azUlX+yEPfcUa4umQ6tG R4UcJtvkm7l05WhKG4+uKWcc1WXO7DUk7l76jiJtSY4iATw169ZfbCULyywvan1hQ/z/ CDlvabwBp3hTJ2R/XsBT71/770D93AjC/KjYgSdOV77iMGNmBYTeyueqxb1kjb3j+nEE 1aegbyWeKJXpcQ+WwrSa0MGS9m12y7oOKA528nv/G40k3bIHwf4EdolOpZZIszZBSsy/ BQHw== X-Gm-Message-State: APjAAAW+nGB0jhZJixr76CJPriQH9HACzY9bxWIQATk7S+uiR3CpbmSB 4uJSQ8118mT8Z3KZicECyceYbH2zdX6d/u6ryIEPaE7huko= X-Google-Smtp-Source: APXvYqzrYooLmMTQMkNVVpKDCrCCnwV1F0U/ZIGL35vhWQMFJc36IyIBUzsrVLk7fVgRzLMiCPIuNQ/CJIXYuYfodyc= X-Received: by 2002:a9d:3dca:: with SMTP id l68mr7077910otc.273.1559685730334; Tue, 04 Jun 2019 15:02:10 -0700 (PDT) MIME-Version: 1.0 From: Sebastian Gniazdowski Date: Wed, 5 Jun 2019 00:01:59 +0200 Message-ID: Subject: Asynchronous completions? To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, I've just waited a bit after: git checkout . The delay was caused by the completion script loading all revisions, while I only wanted branches. This gave me an idea =E2=80=93 to use exec {FD}< <(...) and zle -F to updat= e the completion, after first displaying "Loading all revisions". In one project I'm passing as much as 13000 lines through the {FD} after each keypress without any problems. The method is very simple, e.g.: handler() { (git)-[feature/redrawhook] local IFS=3D$'\n' read -u $FD line zle -F $FD # Better not forget about this, strange things happen zle -M "$line" } zle -N handler exec {FD}< <(sleep 2; echo Hello World) true # workaround pre-5.7.1-dev-0 bug fixed in 44214 zle -F -w $FD handler I'm not familiar with coding completions. Could someone else start the async-completions trend? For more examples on the <(...) / zle -F technique take a look at a patch that introduced asynchronous man-database query into fast-syntax-highlighting (to highlight if a man page given is correct or not): https://github.com/zdharma/fast-syntax-highlighting/commit/3e7d5eb= 0eb70d5c570a680da3ae49d26e1a77f69 --=20 Sebastian Gniazdowski News: https://twitter.com/ZdharmaI IRC: https://kiwiirc.com/client/chat.freenode.net:+6697/#zplugin Blog: http://zdharma.org