From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18717 invoked by alias); 10 Feb 2016 09:09:13 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 21262 Received: (qmail 14306 invoked from network); 10 Feb 2016 09:09:12 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) 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.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:cc:content-type; bh=8etTcPOnsRotLQ2PxLzMKq+WbPM3sNS5a7DhtV3hCfM=; b=Ki75dfwiDL0YeHkUibNroBXoob5Rt6hjmrTIH54t910ynmV+yNhoUc0LCSsO6g5sDt /f2uVI0hoHVsTcmi+fZDTydDV8totb5aDsyQXMoK3NBBIHpdPkee/ny/xlclpfVai31f NeDeFHxE4RvkpxOK9bnQjcsbFkm8tlNodzVRMa0dIPO5/0rv+O8wDURtIfBo4xt1+q2p 4iGo4d4lchn4o+UvSUAoBThXLsy4KyE6K0zyNg4Ryn6PD8OOO9s4KyD3tvB6sJFrWR8C qr/lQ8SpNG1Rho4ILzndvPFfGO9ifaMsYhjJnbqNobyJC6xrXLSAlOJ7qoYPPpoBQ9bh bZnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc :content-type; bh=8etTcPOnsRotLQ2PxLzMKq+WbPM3sNS5a7DhtV3hCfM=; b=jIiXU7wDyJKxixKtDYQVBfc9v6epOc7+s3ZwFuNwX96zWMn1WRDBybRr8UMsy4L2Or afNXUPx8zpYriydowMzhqks6igNV7Enqp51W7up4wxiHa/mtxiYTodJ/jGylKiAIxSLA IbmXUpygPWbHlupzfT8ovD4qIVddClZlLL05q9LIYDp3oRboWDZAm+6zv50wrWyAl6QF YRibiPxOISt0THX47PJWYdkwGI8bNfBHFdDAfbaL0SKzVSDA96Dm8yzEE77rtwzgiyjZ X39LHl0wNCanRKC7ESL9skETzp0Bga4N5DhV/FxU/S71kiuNZv6qYM5l9Rc1J0Vpihrc XtnQ== X-Gm-Message-State: AG10YOTQ6hrGMlY7Iz10mqgMsBAGjhG+sZVoyAnXz+2dw5DXhRdnmHFVVCUONwS/oGbHbfPZYB2ZEjZoymUaHQ== X-Received: by 10.25.151.9 with SMTP id z9mr13622794lfd.72.1455095347685; Wed, 10 Feb 2016 01:09:07 -0800 (PST) MIME-Version: 1.0 From: Sebastian Gniazdowski Date: Wed, 10 Feb 2016 10:08:48 +0100 Message-ID: Subject: New zplugin feature (was: Re: How completions work, do they require fpath?) To: Bart Schaefer Cc: Zsh Users Content-Type: text/plain; charset=UTF-8 On 31 January 2016 at 20:26, Bart Schaefer wrote: > You could try this: Define your own "compdef" whose only action is > to cache its arguments somewhere. Load all the plugins, then after > compinit is run, play back the cached compdef arguments with the real > compdef. I realized how great that idea is. Implemented it in zplugin, thus an idiom is possible: source '/Users/sgniazdowski/.zplugin/bin/zplugin.zsh' zplugin load "some1/plugin1" zplugin load "some2/plugin2" ... zplugin load "some3/plugin3" autoload -Uz compinit compinit zplugin cdreplay -q # -q is quiet The difference between running compinit once and twice is huge, following time differences are possible: zsh -i -c exit 0,73s user 0,25s system 99% cpu 0,980 total zsh -i -c exit 0,11s user 0,04s system 97% cpu 0,156 total (for 3 plugins) zsh -i -c exit 1,24s user 0,41s system 99% cpu 1,667 total zsh -i -c exit 0,48s user 0,18s system 98% cpu 0,668 total (for 40 plugins) This is a very innovative, great thing. All current plugin managers drifted towards double compinit calling, by force of lack of shadowing: https://github.com/tarjoilija/zgen/blob/master/zgen.zsh#L471-L475 https://github.com/zsh-users/antigen/blob/master/antigen.zsh#L441-L462 OMZ slowness is I guess also result of this. Fun example: % unfunction compdef % zplg dtrace % compdef _ls cp % zplg dstop % zplg cdlist Recorded compdefs: compdef _ls cp % zplg cdreplay Compinit isn't loaded, cannot do compdef replay % autoload -Uz compinit % compinit % zplg cdreplay Running compdef _ls cp % echo $_comps[cp] _ls Best regards, Sebastian Gniazdowski