1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-30 06:59:45 +01:00

zsh: fix completion when oh-my-zsh is enabled

enableCompletion option not only calls compinit but also adds
nix-zsh-completions package to home.packages which should still happen
even if oh-my-zsh is enabled.

The double compinit call will still be eliminated by moving guarding condition
down to the compinit call itself.

Fixes #771.

(cherry picked from commit 7310cfc557)
This commit is contained in:
Nikita Uvarov 2019-08-08 14:57:53 +02:00 committed by Robert Helgesson
parent ef906c5a92
commit 45a73067ac
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89

View file

@ -338,7 +338,13 @@ in
fpath+="$HOME/${pluginsDir}/${plugin.name}"
'') cfg.plugins)}
${optionalString cfg.enableCompletion "autoload -U compinit && compinit"}
# Oh-My-Zsh calls compinit during initialization,
# calling it twice causes sight start up slowdown
# as all $fpath entries will be traversed again.
${optionalString (cfg.enableCompletion && !cfg.oh-my-zsh.enable)
"autoload -U compinit && compinit"
}
${optionalString cfg.enableAutosuggestions
"source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
}
@ -387,11 +393,6 @@ in
}
(mkIf cfg.oh-my-zsh.enable {
# Oh-My-Zsh calls compinit during initialization,
# calling it twice causes sight start up slowdown
# as all $fpath entries will be traversed again.
programs.zsh.enableCompletion = mkForce false;
# Make sure we create a cache directory since some plugins expect it to exist
# See: https://github.com/rycee/home-manager/issues/761
home.file."${config.xdg.cacheHome}/oh-my-zsh/.keep".text = "";